按键检索条目而不使用Breezejs中的过滤器

时间:2013-04-26 15:29:16

标签: odata breeze

当我们使用其密钥在Breezejs中查询实体时,框架正在使用$ filter属性创建一个URL。

/api/orderCollection?$filter=orderId%20eq%20'0001'

是否可以强制微风使用odata格式?

/api/orderCollection(0001)

我有一个标准的odata服务,它不支持第一个网址...

这是我的疑问:

var query = new breeze.EntityQuery().from("OrderCollection");
var pred = breeze.Predicate.create('orderId', '==', orderId);
query = query.where(pred);

KR, 勒夫

1 个答案:

答案 0 :(得分:4)

Breeze总是使用$ filter运算符生成OData查询,因为在添加Predicate表达式时,这为我们提供了最大的灵活性和一致性。这是OData规范的一部分。

但是,如果你真的需要替代表达式,你实际上可以将整个URL作为字符串传递给Breeze作为查询执行,即

 var query = "orderCollection(0001)";
 myEntityManager.executeQuery(query).then(function (data) {
   ...
 });

Breeze仍应返回与此相同的结果

var query = new breeze.EntityQuery().from("OrderCollection")
   .where('orderId', '==', orderId);
myEntityManager.executeQuery(query).then(function (data) {
    ...
});