我有一个这样的sql语句:
DECLARE @destinations table(destinationId int)
INSERT INTO @destinations
VALUES (414),(416)
SELECT *
FROM GroupOrder grp (NOLOCK)
JOIN DestinationGroupItem destItem (NOLOCK)
ON destItem.GroupOrderId = grp.GroupOrderId
JOIN @destinations dests
ON destItem.DestinationId = dests.destinationId
WHERE OrderId = 5662
我正在使用实体框架,我很难将此查询输入 Linq。(我写上面的查询的唯一原因是帮助我概念化我在寻找什么。)
我有一个 GroupOrder 实体的 IQueryable 和一个整数列表,它们是我的目的地。
看了这个之后,我意识到我可能只做两个连接(比如我的 SQL 查询)并得到我想要的。
但是这样做似乎有点奇怪,因为 GroupOrder 对象上已经有一个 DestinationGroupItem 对象列表。
当我有一个 GroupOrder 的 IQueryable 列表时,我有点困惑如何在 GroupOrder 上使用 Navigation 属性。
另外,如果可能的话,我想在一次访问数据库中执行此操作。(我想我可以做几个foreach
循环来完成这项工作,但它不会像对数据库的单个 IQueryable 运行那样有效。)
注意:与查询 linq 语法相比,我更喜欢流利的 linq 语法。但乞丐不能挑剔,所以我会尽我所能。