2010-12-01 3 views
0

J'ai des tables: client, commande, produitrequête de cadre d'entité

Le client a beaucoup de commandes, chaque commande a beaucoup de produits wof.

Comment puis-je écrire une requête pour obtenir tous les produits du client? je dois l'utiliser comme source de données, grâce à l'aide bye

+0

Écrivez une procédure stockée à cet effet. –

Répondre

2
var products = from customer in customers 
       from order in customer.Orders 
       from product in order.Products 
       select product; 

Utilisez simplement LINQ SelectMany.

2

Cela devrait fonctionner:

var result = customer 
       .SelectMany(x=>x.Orders) 
       .Select(x=>x.Products) 

Aussi, vous pouvez ajouter .Distinct() pour récupérer les produits que différents

Une autre façon est pour aller de produits:

var result = dbContext.Products 
       .Where(x=>x.Orders.Any(o=>o.Customer.Id == customer.Id)) 

difficile à lire et difficile à comprendre, mais fonctionne toujours)