Отношение LINQ many -к -many, как написать правильное предложение WHERE?

Я использую многие отношения -к -многим для своих таблиц.

Есть запрос:

var query = from post in context.Posts
        from tag in post.Tags where tag.TagId == 10
        select post;

Хорошо, работает нормально. Я получаю сообщения с тегом, указанным 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 &&... )
8
задан Jean Louis 8 May 2012 в 19:58
поделиться