2017-02-03 1 views
0

Я хочу передать некоторую псевдоинформацию о Entity клиенту и предоставить доступ к моей сущности. Из того, что я могу сказать, только отображаемые свойства объекта доступны после выполнения запроса. Есть ли у меня недостаток или какой-либо другой способ получить исходные результаты вызова API, который вытащил данный объект с сервера?В Breeze (entityframework, knockout) как я могу получить доступ к исходной Entity после завершения запроса

например:

server: 

class Patient 
{ 
    [NotMapped] 
    public string Name => First + " " + Last; 
    public string First {get;set;} 
    public string Last {get;set;} 
} 

client: 

this._executeQuery(breeze.EntityQuery.from('api/Patient/1'))      
    .then(function (data) { 
    var data = data[0]; 
    // data = PatientCtor with first and last properties only 
}); 

Я хотел data.name быть доступны в клиенте. Он отправляется с запросом клиенту, но не выходит на другом конце запроса.

ответ

1

Вы можете добавить свойства к определению стороны на стороне клиента, а Breeze заполнит их для вас. Вы можете сделать это путем регистрации пользовательской функции конструктора для объекта:

function Patient() { 
    this.name = ""; 
} 
var em = new breeze.EntityManager(); 
em.metadataStore.registerEntityTypeCtor("Patient", Patient); 

Обратите внимание, что вам нужно сделать это до первого запроса.

Затем, когда бриз создает объекты пациента в результате запроса, он заполнит неотображенное свойство name.

См. Документацию о бридже по телефону Extending Entities.

+0

Спасибо, Стив. Работает как описано. – GenuineRex

+0

Отлично! Пожалуйста, отметьте ответ как «принятый». –

Смежные вопросы