Breeze可以使用多个where
语句查询condition1和condition2。但是它能查询条件1或条件2吗?
如果没有,在使用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
好吧,问题是微风API和文档有点缺乏一些拼写错误。
答案是使用谓词类的'or'方法来创建一个新的谓词对象,该对象传递给where
方法。
给定三个谓语,像这样把它们放在一起:
var newPred = p1.or(p2, p3);
或
var preds = [p2, p3];
var newPred = p1.or(preds);
或fluent方法:
var p4 = Predicate.create("ShipCity", "startswith", "F")
.or("Size", "gt", 2000);
或使用静态'or'方法
var newPred = Predicate.or(p1, p2, p3);