gpt4 book ai didi

sql - Linq to WCF OData 是否适合复杂查询

转载 作者:行者123 更新时间:2023-12-04 22:40:20 25 4
gpt4 key购买 nike

目前我们正在评估我们是否应该将 WCF 数据服务用作我们应用程序的 DAL,我正在做一个 POC 以查看 WCF 数据服务是否会在我们的所有场景中崩溃。如果我有如下数据模型

DataModel

并且我想获取 ID 为 1 的人订购的所有产品 > 100 美元我将如何使用 Linq to OData 来实现,因为在与 OData 一起使用时对 Linq 运算符有很多限制。

dbContext.LineItems.Where(li => li.Order.PersonId == 1 && li.Product.Cost > 
120).Select( li => new { Product = li.Product})

上面的代码在 Sql 服务器上生成了非常模糊的 T-SQL,理想情况下我想从上到下钻取(如果使用 LINQ 查询或直接 T-SQL,则从订单到产品)连接表,但似乎总是使用 OData从底部到顶部,我感觉不太舒服,在某些情况下,当我们必须在单个查询中查询两个以上的表时,会生成非常糟糕的 sql。

在我们的应用程序中,我们期待这样的场景,我们必须在单个查询中查询(写入条件)最多 4 个表并选择一个实体。对于这类复杂查询,OData 完全正确吗?

感谢阅读一篇很长的文章。

最佳答案

在某些情况下,您会发现无法在 LinQ 中生成 Odata 查询,并不是不能查询,而是 Linq 提供程序无法执行。在项目开始时,我们很快发现自己首先编写 Odata 查询,然后尝试将其转换为 LinQ;没过多久,我们就求助于简单地使用 Odata 进行查询。

这篇文章可能会为您提供一些其他有用的信息:Disadvantages of OData?特别是有关使用 View 的链接帖子。

关于sql - Linq to WCF OData 是否适合复杂查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20648343/

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