如何在微风

时间:2015-04-29 15:55:06

标签: javascript c# linq breeze

假设我有一个名为Foo的实体,它有一个Bars列表。 Bars还包含一个名为isDeleted的字段,表示特定栏已被软删除。我希望能够查询特定的Foo并过滤掉使用Breeze在Javascript文件中软删除的Bars。我认为这会奏效......

var query = breeze.EntityQuery.from('Foo')
        .where('Id', '==', id).and('Bars.IsDeleted', '==', false)
        .expand('Bars');

然而事实并非如此,有人能告诉我如何在微风中做到这一点吗?如果唯一的解决方案是在BreezeController中编写一个方法并使用标准的LINQ语法,那么我很好,但我只是想看看它是否会在Breeze中完全起作用。

1 个答案:

答案 0 :(得分:0)

查询will automatically "AND" together上有多个.where()个链。如果你想明确这样做,你需要使用breeze.Predicate对象作为where参数,如下所示:

var query = breeze.EntityQuery.from('Foo').expand('Bars')
    .where(new breeze.Predicate('Id', 'eq', id)
                     .and('Bars.IsDeleted', 'eq', false));

您还可以选择在.or对象上使用Predicate或任何其他方法,其中大部分都可以正常链接。

修改:以下是使用多个.where来电的示例:

    var query = breeze.EntityQuery.from('Foo').expand('Bars')
                .where('Id', 'eq', id)
                .where('Bars.IsDeleted', 'eq', false);