Breeze可以使用多个where
语句查询condition1 AND condition2。但它可以查询condition1 OR condition2吗?
如果没有,使用Breeze时达到相同效果的推荐方法是什么?
我目前认为,唯一的方法是使用特殊的操作方法在服务器上执行查询,这会产生一些问题。
答案 0 :(得分:2)
像这样的样本使用Predicate:
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);
答案 1 :(得分:2)
好的,问题是Breeze API和Docs有点缺乏拼写错误。
答案是使用Predicate类的'或'方法创建一个传递给where
方法的新Predicate对象。
给出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);