当我们使用其密钥在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, 勒夫
答案 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) {
...
});