テーブルに多対多の関係を使用しています。
クエリがあります:
var query = from post in context.Posts
from tag in post.Tags where tag.TagId == 10
select post;
わかりました、うまくいきます。id で指定されたタグの付いた投稿を取得します。
タグ ID のコレクションがあります。そして、コレクション内のすべてのタグを持つ投稿を取得したいと考えています。
私は次の方法を試します:
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;
うまくいきません。クエリは、指定されたタグのいずれかを持つすべての投稿を返します。
このような節を取得したいのですが、コレクション内の任意の数のタグに対して動的に:
post.Tags.Whare(x => x.TagId = 1 && x.TagId = 3 && x.TagId = 7 && ... )