Używam relacji wiele do wielu dla moich tabel.LINQ wiele do wielu relacji, jak napisać poprawną klauzulę WHERE?
Jest zapytania:
var query = from post in context.Posts
from tag in post.Tags where tag.TagId == 10
select post;
Ok, to działa dobrze. Otrzymuję posty z tagiem określonym przez id.
Mam kolekcję identyfikatorów tagów. Chcę otrzymywać posty zawierające każdy tag z mojej kolekcji.
próbuję następujący sposób:
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;
to nie działa. Zapytanie zwraca wszystkie posty posiadające DOWOLNY jeden z określonych znaczników.
chcę uzyskać klauzulę tak ale dynamicznie dla każdej liczby znaczników w kolekcji:
post.Tags.Whare(x => x.TagId = 1 && x.TagId = 3 && x.TagId = 7 && ...)
możliwe duplikat [Jak mogę odzyskać elementy, które są oznaczone ze wszystkim dostarczone tagi w linq?] (http://stackoverflow.com/questions/3478874/how-do-i-retrieve-items-atat-are-tagged-with-all-the-supplied-tags-in-linq) –