2012-06-24 2 views
0

У меня есть следующие настройки:Наиболее эффективное Многие-ко-многим Linq запросов

Таблица: Вопрос

  • QuestionID

Таблица: QuestionTag

  • QuestionID
  • TagId

Таблица: Tag

  • TagID
  • TagName

вопрос может иметь много тегов и тег может иметь много вопросов (многие-ко-многим)

I используя LingToSql. Я пытаюсь создать запрос на основе метода, который позволит мне передать список имен тегов и вернуть все вопросы с этими тегами. Я просто не могу шов, чтобы обмануть голову, как это сделать.

Был ли кто-то добр, чтобы показать мне пример того, как это сделать, используя метод Linq, основанный на методе?

спасибо.

ответ

1
List<string> tagNames = ...; 
var questions = db.Questions.Where(
    q => q.QuestionTags.Any(
      qt => tagNames.Contains(qt.Name))); 

Трудно понять, что это глубокое гнездование операторов. Через некоторое время это становится естественным.

+1

спасибо! Работал как шарм. Забавно, это так очевидно, когда я это вижу. –

Смежные вопросы