用微风检索记录

时间:2013-04-01 15:31:36

标签: breeze

我用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 ...
}

我的问题:这是继续进行的好方法吗?还有另一种做法吗?

感谢。

1 个答案:

答案 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( {
  ...
});