LINQ To SQL le plus succinct pour prendre COUNT (*) de l’un ou l’autre des côtés de plusieurs à plusieurs?

StackOverflow https://stackoverflow.com/questions/236632

Question

S'il vous plaît, aidez-moi avec un contrôle de santé mentale. En supposant une relation plusieurs-à-plusieurs:

Post, PostTagAssoc, Tag http://www.codingthewheel.com/pics/many_to_many. gif

Quelle est la méthode la plus succincte (avec LINQ to SQL) pour obtenir un jeu de résultats indiquant, pour chaque balise (ou publication), le nombre total de publications (ou balises) qui lui sont attribuées?

Merci!

Était-ce utile?

La solution

 from pta in db.PostTagAssoc
 group pta by pta.PostID into t
 select new {PostID = t.Key, TagCount=t.Count()}

Autres conseils

Ceci affichera également les publications avec 0 balises, ce qui est un peu plus clair à mon avis.

from p in db.Post
select new {PostID = p.ID, TagCount = t.PostTagAssoc.Count}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top