gpt4 book ai didi

javascript - 如何在 Breeze 中对扩展实体使用谓词

转载 作者:行者123 更新时间:2023-12-03 10:14:30 25 4
gpt4 key购买 nike

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

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

但是事实并非如此,有人可以告诉我如何在 Breeze 中做到这一点吗?如果唯一的解决方案是在 BreezeController 中编写一个方法并使用标准 LINQ 语法,那么我可以接受,但我只是想先看看它是否能在 Breeze 中工作。

最佳答案

目前 Breeze 不支持过滤“expands”。即仅返回满足特定条件的“扩展”实体。这是因为很少有后端服务器和持久性库提供支持这一点的机制。

但是,您可以做的是反转查询以获得您需要的内容。即

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

这假设每个“Bar”实体都有一个标量“Foo”属性。

这将仅返回您想要的“Bars”及其关联的“Foo”实体。这是可行的,因为 Breeze 允许嵌套标量谓词。即“Foo.Id”。

关于javascript - 如何在 Breeze 中对扩展实体使用谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29948813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com