2012-06-24 5 views
0

je la configuration suivante:plus efficace Beaucoup à plusieurs requête LINQ

Tableau: Question

  • QuestionID

Tableau: QuestionTag

  • QuestionID
  • TagId

Tableau: Tag

  • TagId
  • TagName

Une question peut avoir plusieurs balises et une étiquette peut avoir de nombreuses questions (plusieurs à plusieurs)

I utilise LingToSql. J'essaie de créer une requête basée sur une méthode qui me permettra de passer une liste de noms de balises et de retourner toutes les questions avec ces balises. Je ne peux simplement pas couture pour envelopper ma tête autour de comment faire cela.

Est-ce que quelqu'un serait assez aimable pour me montrer un exemple de la façon de le faire en utilisant une requête Linq basée sur la méthode?

Merci.

Répondre

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

La difficulté pour comprendre cela est l'imbrication profonde des opérateurs. Après un moment, cela devient naturel.

+1

Merci beaucoup! Travaillé comme un charme. C'est drôle, c'est tellement évident après je le vois. –

Questions connexes