where
Breeze 可以使用多条语句查询condition1 AND condition2 。但是它可以查询condition1 OR condition2吗?
如果不是,那么在使用 Breeze 时达到相同效果的推荐方法是什么?
我目前正在考虑这样做的唯一方法是使用特殊操作方法在服务器上执行查询,这会产生一些问题。
where
Breeze 可以使用多条语句查询condition1 AND condition2 。但是它可以查询condition1 OR condition2吗?
如果不是,那么在使用 Breeze 时达到相同效果的推荐方法是什么?
我目前正在考虑这样做的唯一方法是使用特殊操作方法在服务器上执行查询,这会产生一些问题。
像这个示例一样使用谓词:
var p1 = new breeze.Predicate("IsArchived", "==", false);
var p2 = breeze.Predicate("IsDone", "==", false);
var predicate = p1.and(p2);
var query = new EntityQuery("Todos").where(predicate);
文档可在此处获得: http ://www.breezejs.com/documentation/query-filter
好的,问题是 Breeze API 和 Docs 缺少一些拼写错误。
答案是使用 Predicate 类的 'or' 方法来创建一个新的 Predicate 对象并传递给该where
方法。
给定 3 个谓词,您将它们“或”在一起,如下所示:
var newPred = p1.or(p2, p3);
或者
var preds = [p2, p3];
var newPred = p1.or(preds);
或流利的方法:
var p4 = Predicate.create("ShipCity", "startswith", "F")
.or("Size", "gt", 2000);
或使用静态“或”方法
var newPred = Predicate.or(p1, p2, p3);