我用asp.net mvc + breeze开发了一个应用程序。
到目前为止,我检索了一条特定的记录(基于id):
var getTransportById = function (transportId, transportObservable) {
return manager.fetchEntityByKey('Transport', transportId, true)
.then(fetchSucceeded)
.fail(queryFailed);
}
function fetchSucceeded(data) {
var s = data.entity;
return ...
}
现在我需要检索相同的记录,但需要“扩展”名为 sender 的属性,该属性链接到另一个实体(表)。我没有找到通过 fetchEntityByKey “扩展”一个属性的方法,所以我使用了这样的查询:
var getTransportById = function (transportId, transportObservable) {
var query = EntityQuery.from('Transports')
.where('id', 'eq', transportId)
.expand('Sender')
.orderBy(orderBy.transport);
return manager.executeQuery(query)
.then(fetchSucceeded)
.fail(queryFailed);
}
function fetchSucceeded(data) {
var s = data.results[0];
return ...
}
我的问题:这是继续进行的好方法吗?还有另一种做法吗?
感谢。
答案 0 :(得分:3)
您可以从EntityKey创建查询,然后展开您想要的任何属性。像这样:
var entityKey = new EntityKey("Transport", transportId);
// expand whichever nav props you want here.
var query = EntityQuery.fromEntityKey(entityKey).expand("Sender").orderBy(...);
return entityManager.executeQuery(query).then( {
...
});