Можно ли создать коррелированный подзапрос в LINQ? - PullRequest
3 голосов
/ 09 февраля 2010

Я хотел бы создать запрос 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 Ответ

5 голосов
/ 09 февраля 2010
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

если это то, что вы хотели

...