微风实施' AND'和'或者'在where方法中

时间:2013-06-02 04:41:54

标签: breeze

Breeze可以使用多个where语句查询condition1 AND condition2。但它可以查询condition1 OR condition2吗?

如果没有,使用Breeze时达到相同效果的推荐方法是什么?

我目前认为,唯一的方法是使用特殊的操作方法在服务器上执行查询,这会产生一些问题。

2 个答案:

答案 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);

此处提供了文档: http://www.breezejs.com/documentation/query-filter

答案 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);