如何使用BreezeJS查询子实体的多个条件?

时间:2014-07-02 02:43:09

标签: javascript breeze durandal

我有一个Batch实体,可以有很多批处理站。我希望批处理的批处理站的站号为4,站点起始为空。我知道我可以这样做:

query.where('BatchStations', 'any', 'StationNumber', '==', 4)

但是如何检查Station Start是否也为空?我尝试使用and和(),然后再次遍历所有批处理站。我想在同一批处理站上比较这两个条件。

2 个答案:

答案 0 :(得分:2)

使用谓词:

var pred = Predicate.create("StationNumber", "==", 4)
                       .and("StationStart", "==", null);
var query = new EntityQuery.from(...).where("BatchStations", "any", pred);

答案 1 :(得分:1)

我明白了!

我必须使用breeze.Predicate.and()来创建一个子谓词和“和”它们来创建单个谓词。这是我的解决方案:

var p1 = new breeze.Predicate('StationNumber', '==', 4);
var p2 = new breeze.Predicate('StationStart', '==', null);
var p3 = new breeze.Predicate.and(p1, p2);
var p4 = new breeze.Predicate('BatchStations', 'any', p3);
query = query.where(p4);