Uso la relación muchos a muchos para mis tablas.LINQ relación muchos a muchos, cómo escribir una cláusula WHERE correcta?
hay una consulta:
var query = from post in context.Posts
from tag in post.Tags where tag.TagId == 10
select post;
Ok, trabaja muy bien. Recibo publicaciones con la etiqueta especificada por id.
Tengo una colección de identificadores de etiquetas. Y quiero obtener publicaciones con todas las etiquetas en mi colección.
Trato de la siguiente manera:
var tagIds = new int[]{1, 3, 7, 23, 56};
var query = from post in context.Posts
from tag in post.Tags where tagIds.Contains(tag.TagId)
select post;
No funciona. La consulta devuelve todas las publicaciones que tienen CUALQUIERA de las etiquetas especificadas.
quiero conseguir una cláusula como este, pero dynamicaly para cualquier recuento de etiquetas en la colección:
post.Tags.Whare(x => x.TagId = 1 && x.TagId = 3 && x.TagId = 7 && ...)
posible duplicado de [¿Cómo recupero artículos que están etiquetadas con toda las etiquetas suministradas en linq?] (http://stackoverflow.com/questions/3478874/how-do-i-retrieve-items-that-are-tagged-with-all-the-supplied-tags-in-linq) –