2010-02-08 8 views
3

Je voudrais créer une requête LINQ qui renvoie la somme de toutes les quantités pour un numéro de produit donné pour un compte parent et tous ses comptes enfants.Est-il possible de créer une sous-requête corrélée dans LINQ?

J'ai une table de produits par numéro de compte dans lequel chaque ligne contient également un qté et le numéro de compte parent:

 

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') 

 

est-ce possible dans la syntaxe LINQ pure? Dois-je utiliser la syntaxe de la méthode d'extension à la place?

Merci, -Keith

Répondre

4
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 

Quelque chose comme ça?

Vous pouvez remplacer

subitem.AccountNumber == 27748 

avec

subitem.AccountNumber == item.AccountNumber 

si c'est ce que vous vouliez

+0

Excellent! Merci. – Keith

Questions connexes