使用breezejs过滤实体的子属性集合

时间:2014-04-25 20:16:28

标签: javascript breeze

我有一个用例,我使用实体的子属性集合并过滤它以显示在表中。

我知道“any”和“all”查询运算符,但据我所知,它不会过滤实体上的实际子属性集合。

所以基本上当我做这样的查询时:

var query = EntityQuery.from("Farms")
    .where("FarmYields", "any", "year",  "==", 2010);

然后,结果只有FarmYields按照预期生产2010年的农场。但是,无论年份如何,每个Farm实体上的FarmYields集合仍然具有所有FarmYield。

为了让我的结果只显示我感兴趣的FarmYields我想过滤子集合,但修改FarmYields似乎是一个错误的移动,因为它是非标量导航属性。

我想我的问题是如何过滤实体的子属性集合,或者我在这里完全错误的路径。任何指导都将非常感谢。

1 个答案:

答案 0 :(得分:0)

如果您从FarmYields开始查询,我认为您可以实现您想要做的事情。像,

var query = breeze.EntityQuery.from('FarmYields')
            .where('year', '==', 2010)
            .expand('Farm');

 mgr.executeQuery(query)
    .then(function (data) {
        var underscore = _;
        var farms = underscore.pluck(data.results, 'Farm');
     });

现在,您的农场系列只会有“农场”,其中“年”和“年份”为等于2010