Entity Framework inclure les cas Où

Si j'ai une requête qui ressemble à ceci:

var forms = repo.GetForms().Where(f => f.SubForms.Any(sf => sf.Classes.Any(c => c.TermId == termId)));

De cela, vous pouvez voir mon schéma est comme suit:

SubForm a beaucoup de Class qui a beaucoup de Term.

Ce que je veux:

Tous SubForms avec leur Classes En particulier Term.

Ce qui se passe maintenant c'est que j'ai tous les SubForm qui a tout Class en particulier Term. Cela signifie que SubForm revient avec TOUS enfant Class et pas seulement ceux liés à la Term.

Pour eg. J'ai 2 termes, un sous-formulaire avec 2 classes de chaque terme. Cette requête renvoie 4 classes au lieu de 2 dans ce mandat particulier.

Est-il Include('Expression') que je peux utiliser pour dire que je ne veux inclure toutes les classes sur la base d'un état? Ou est ma requête mal?

  • La première Any est censé être un Where, droit? Sinon, votre requête serait juste de retour d'un bool, en disant: "Est-il un sous-formulaire qui a des classes avec des termes avec le termId, oui ou non?"
  • Désolé, il y a aussi un autre niveau sur le dessus de cette expression, je vais modifier ça, désolé
InformationsquelleAutor Shawn Mclean | 2011-12-08