Linq to Entity 查询 .Expand

发布于 2025-01-08 12:37:15 字数 605 浏览 0 评论 0原文

我得到了以下表格 TableATableBTableCTableDTableE 并且它们之间有外键关系喜欢 FK_AB(一对多),FK_BC(一对一),FK_CD(一对多),FK_DE(一对一)并具有基于这些外键的导航属性 现在我想查询TableA并获取TableA、TableD和TableE中Loadedby列等于System的记录。我的查询如下所示

var query= from A in Context.TableA.Expand(TableB/TableC/TableD).Expand(TableB/TableC/TableD/TableE)
           where A.Loadedby=="System"
           select A;

上面的查询工作正常。我想要 TableD 和 TableE 中 Loadedby 值等于 System 的记录,但上述查询返回 TableD 和 TableE 中与 TableA 记录相关的所有记录,满足 A.Loadedby="System" 此条件不在子表中检查。

谁能告诉我如何过滤子表。

I got the following tables
TableA, TableB, TableC, TableD, TableE and they have foreign key relations like
FK_AB(one to many),FK_BC(one to one),FK_CD(One to many),FK_DE(one to one) and have the navigation properties based on these foreignkeys
Now I want to query TableA and get the records from TableA, TableD and TableE whoose Loadedby column equal to System. My query is like below

var query= from A in Context.TableA.Expand(TableB/TableC/TableD).Expand(TableB/TableC/TableD/TableE)
           where A.Loadedby=="System"
           select A;

The above query is working fine. I want the records from TableD and TableE whoose Loadedby value equal to System but the above query returning all the records from TableD and TableE which are related to TableA record satisfying A.Loadedby="System" this condition is not checked in the child tables.

Can anyone tell me how to filter the child tables also.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

静赏你的温柔 2025-01-15 12:37:15

目前 OData 仅支持顶层过滤器。因此,在上面的示例中,它只能过滤 TableA 中的行。在扩展内部,始终会包含所有适当的行,但现在无法过滤这些行。
您也许可以通过附加查询(使用正确的过滤器)单独请求扩展实体,并可能使用批处理将所有查询分组到一个请求中。但这取决于您需要发送的实际查询。

Currently OData only supports filters on the top-level. So in the above example it can only filter rows from the TableA. Inside expansions all the approriate rows will be included, always, there's no way to filter those right now.
You might be able to ask for the exanded entities separately with additional queries (with the right filter) and possibly use batch to group all the queries in one request. But that depends on the actual query you need to send.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文