每次我尝试从没有 .select 的查询中映射 dto->entity 时,都会遇到相同的错误:
检索数据时出错。对象 [object Object] 的属性“entityAspect”不是函数
我正在使用 Breeze+Durandal 在 SPA 中工作,我的查询方法是:
var getTratamentoByPacienteId = function (pacienteId, tratamentoObservable) {
var query = entityQuery.from('Tratamentos')
.where('pacienteId', '==', pacienteId)
.expand("Cardapios.Refeicoes.TipoRefeicao, Cardapios.Refeicoes.ItensRefeicao.Alimento, Cardapios.Refeicoes.ItensRefeicao.UnidadeMedida");
var result = manager.executeQuery(query)
.then(querySucceeded)
.fail(queryFailed);
return result;
function querySucceeded(data) {
var list = partialMapper.mapDtosToEntities(manager, data.results, entityNames.tratamento, 'id');
if (tratamentoObservable) {
tratamentoObservable(list[0]);
}
log('Retrieved [Tratamento] from remote data source', data, true);
return tratamentoObservable;
}
};
function mapDtosToEntities(manager, dtos, entityName, keyName, extendWith) {
return dtos.map(dtoToEntityMapper);
function dtoToEntityMapper(dto) {
var keyValue = dto[keyName];
var entity = manager.getEntityByKey(entityName, keyValue);
if (!entity) {
// We don't have it, so create it as a partial
extendWith = $.extend({}, extendWith || defaultExtension);
extendWith[keyName] = keyValue;
entity = manager.createEntity(entityName, extendWith);
}
mapToEntity(entity, dto);
entity.entityAspect.setUnchanged();
return entity;
}
function mapToEntity(entity, dto) {
// entity is an object with observables
// dto is from json
for (var prop in dto) {
if (dto.hasOwnProperty(prop)) {
entity[prop](dto[prop]); /*<- Error here*/
}
}
return entity;
}
}