У меня есть база данных SQL (SQL Server 2008), которая содержит следующий дизайн
ITEM
- ID (Int, Identity)
- Имя (NVarChar (50))
- Описание (NVarChar (200))
META
- ID (Int, Identity)
- Имя (NVarChar (50))
Существует отношение N-N между этими двумя, то есть Элемент может содержать ноль или более мета-ссылок, а мета может быть связана с более чем одним элементом. Каждая мета может быть связана с одним и тем же элементом только один раз. Это значит, что у меня классический стол посередине
ITEMMETA
- ItemID (Int)
- MetaID (Int)
Я хотел бы выполнить запрос LinqToSql для извлечения всех сущностей элементов, которые содержат определенный набор мета-ссылок. Например, дайте мне все Предметы, с которыми связаны следующие метаэлементы
Можно ли написать такой запрос с помощью LinqToSql? Позвольте мне предоставить еще несколько требований
- У меня будет список мета-тегов, которые я хочу использовать для фильтрации элементов, которые будут возвращены (например, в приведенном выше примере у меня были Car, Ford и Offroad)
- Элемент может иметь больше мета-элементов, связанных с ним, чем то, что я предоставляю в матче, т. Е. Если с элементом ассоциированы элементы Car, Ford, Offroad и Red, то предоставление любой их комбинации в фильтре должно привести к совпадению
- Однако ВСЕ мета-имена, которые предоставляются в фильтре, ДОЛЖНЫ быть связаны с элементом, который будет возвращен в наборе результатов. Таким образом, отправка в автомобилях, Ford, Offroad и Red НЕ ДОЛЖНА совпадать с элементом, у которого ассоциированы Car, Ford и Offroad (без Red)
Я надеюсь, ясно, чего я пытаюсь достичь, я чувствую, что я не так ясен, как я надеялся = / Будем надеяться, этого достаточно:)
Спасибо!