¿El LINQ To SQL más sucinto para tomar COUNT (*) de cualquier lado de muchos a muchos?
-
04-07-2019 - |
Pregunta
Por favor, ayúdame con un control de cordura. Asumiendo una relación de muchos a muchos:
Post, PostTagAssoc, Tag http://www.codingthewheel.com/pics/many_to_many. gif
¿Cuál es la forma más sucinta (usando LINQ to SQL) para obtener un conjunto de resultados que muestre, para cada etiqueta (o publicación), el número agregado de publicaciones (o etiquetas) asignadas a ella?
¡Gracias!
Solución
from pta in db.PostTagAssoc
group pta by pta.PostID into t
select new {PostID = t.Key, TagCount=t.Count()}
Otros consejos
Esto también mostrará las publicaciones con 0 etiquetas, y en mi opinión es un poco más claro.
from p in db.Post
select new {PostID = p.ID, TagCount = t.PostTagAssoc.Count}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow