Javascript 如何在breeze中对扩展实体使用谓词
假设我有一个名为Javascript 如何在breeze中对扩展实体使用谓词,javascript,c#,linq,breeze,Javascript,C#,Linq,Breeze,假设我有一个名为Foo的实体,它有一个条的列表条形图还包含一个名为isDeleted的字段,表示特定条形图已被软删除。我希望能够查询特定的Foo,并使用Breeze过滤掉Javascript文件中被软删除的条。我想这会有用的 var query = breeze.EntityQuery.from('Foo') .where('Id', '==', id).and('Bars.IsDeleted', '==', false) .expand('Bars'); 然而
Foo
的实体,它有一个条的列表<代码>条形图
还包含一个名为isDeleted
的字段,表示特定条形图已被软删除。我希望能够查询特定的Foo
,并使用Breeze过滤掉Javascript文件中被软删除的条。我想这会有用的
var query = breeze.EntityQuery.from('Foo')
.where('Id', '==', id).and('Bars.IsDeleted', '==', false)
.expand('Bars');
然而事实并非如此,有人能告诉我如何在微风中做到这一点吗?如果唯一的解决方案是在BreezeController
中编码一个方法,并使用标准LINQ语法,那么我对此没有意见,但我只想看看它是否能在Breeze中首先工作。Multiple.where()
链接查询。如果要明确地执行此操作,需要使用对象作为where参数,如下所示:
var query = breeze.EntityQuery.from('Foo').expand('Bars')
.where(new breeze.Predicate('Id', 'eq', id)
.and('Bars.IsDeleted', 'eq', false));
您还可以选择在谓词
对象上使用。或
或任何其他方法,其中大多数方法正确链接
编辑:以下是使用多个的示例。其中
调用:
var query = breeze.EntityQuery.from('Foo').expand('Bars')
.where('Id', 'eq', id)
.where('Bars.IsDeleted', 'eq', false);
目前,Breeze不支持“扩展”的过滤。i、 e.仅返回满足特定标准的“扩展”实体。这是因为很少有后端服务器和持久性库提供支持这一点的机制
但是,您可以做的是将查询倒置,以获得所需的内容。i、 e
var query = breeze.EntityQuery.from('Bars').expand('Foo')
.where(new breeze.Predicate('Foo.Id', 'eq', id)
.and('IsDeleted', 'eq', false));
这假设“Bar”实体都有标量“Foo”属性
这将只返回您想要的“条”及其关联的“Foo”
实体。这是因为Breeze允许嵌套标量谓词。i、 e.“Foo.Id”