是否可以在LINQ中创建相关子查询?

时间:2010-02-08 21:39:02

标签: c# linq correlated-subquery

我想创建一个LINQ查询,该查询返回父帐户及其所有子帐户的给定产品编号的所有数量的总和。

我有一个按帐号列出的产品表,其中每行还包含一个数量和父帐号:


PartNumber   AccountNumber   ParentAccountNumber   Qty
----------   -------------   -------------------   ---
1000000390   27113           27173                  2
1000000390   27516           27173                  1
1000000390   00113           27173                  0
1000000390   27748           27173                  5


SELECT * FROM Inventory
WHERE ProductNumber='1000000390' 
AND ParentAccountNumber=(SELECT TOP 1 parentaccountnumber FROM Inventory 
WHERE accountnumber='27748')


纯LINQ语法可以吗?我是否需要使用扩展方法语法?

谢谢, -Keith

1 个答案:

答案 0 :(得分:5)

from item in Inventory
where item.ProductNumber == 1000000390
where item.ParentAccountNumber == (from subitem in Inventory 
                                   where subitem.AccountNumber == 27748
                                   select subitem.ParentAccountNumber).First()
select item

那样的东西?

您可以替换

  subitem.AccountNumber == 27748

   subitem.AccountNumber == item.AccountNumber

如果这就是你想要的