2009-09-07 11 views
0

J'ai une entité Product and Category dans une association many-to-many. J'essaie d'afficher le nombre de catégories pour chaque produit. Jusqu'à présent, je suis venu avec ceci:LINQ to Entities et groupement avec une association many-to-many

Dim context = new Context() 
Dim products = context.Products() 
Dim productsByCategoryCount = From product In Products 
Group product By productId = product.productId Into productCount = Count(product.cateogories.Count) 

La requête exécute mais ne montre pas le résultat correct. Qu'est-ce que je fais mal?

+0

S'il vous plaît, expliquez quels sont les résultats que vous attendiez et quels sont les résultats que vous avez obtenu. –

Répondre

5

Une requête comme cela devrait le faire:

var results = from p in ctx.Products 
       select new {Product = p, CategoryCount = p.Categories.Count} 

Hope this helps

Alex

+0

Silly moi, si vous utilisez Inclure, il peut être aussi facile que: Pour chaque produit Dans Products.Include ("Catégories") Console.WriteLine (product.Name + product.Categories.Count(). ToString() Suivant – Dan

+1

Oui, vous pouvez le faire aussi, mais vous chargez tous les produits et toutes les catégories Si vous ne faites que projeter le nombre, vous ne chargez pas les catégories elles-mêmes, cela dépend si vous avez besoin des catégories ou du nombre de catégories. –