2011-04-04 2 views
1

J'ai une classe qui a les champs suivants:requête LINQ à une classe personnalisée

public Account account; 
public IEnumerable<PurchaseTransaction> purchases; 

Fondamentalement, je veux sélectionner chaque « compte », et d'effectuer une jointure externe à la table purchasetransactions et sélectionnez tous les achats et placez-les dans les «achats» IEnumerable (ou laissez vide s'il n'y a pas d'achats), et le compte dans le champ «compte». Est-ce facile à faire?

Répondre

1

C'est ici que GroupBy vous sera utile. Il crée automatiquement le IEnumerable pour vous aussi!

Exemple:

from row in db.purchases 
group row by row.AccountID into g 
select g; 

g est déjà un IEnumerable contenant tous les achats pour l'ID de compte qui est stocké dans g.Key.

+0

Merci - comment procéder pour sélectionner un lien vers un objet Compte dans la même requête et le sélectionner également? – Chris

+0

Dans LINQ-to-SQL, vous pouvez utiliser LoadWith. Cependant, il n'est pas recommandé car il augmente la taille des données récupérées. Mieux vaut d'abord charger les comptes, puis charger les achats dans une requête distincte. –

0

Résolu en joignant sur les achats puis en les sélectionnant dans une nouvelle instance de ma classe.

Questions connexes