Cela devrait être simple, mais je ne fais aucun progrès sur ce problème. Je veux écrire une déclaration LINQ qui renvoie une personne correspondant à un ID donné et inclure un ensemble de visites. Que je peux faire. Maintenant, je dois inclure uniquement les visites actives, c'est-à-dire inclure la visite uniquement si le drapeau IsActive est vrai. Ma requête est incluse ci-dessous. Qu'est-ce que je fais mal?Comment utiliser une condition .Where() avec .Include()?
var inmate = this.db.Inmates.Where(p => p.Id == id).Include(p => p.Visits.Where(v => v.IsActive)).FirstOrDefault();
Mise à jour # 1 - J'ai aussi essayé cette déclaration:
var inmate = this.db.Inmates.Include(p => p.Visits).Where(p => p.Id == id && p.Visits.Any(v => v.IsActive)).FirstOrDefault();
Avez-vous vu cette question SO http://stackoverflow.com/questions/1680863/linq-include-with-where-clause? –
Je crois que vous essayez de faire un chargement passionné conditionnel où lorsque vous accédez à inmateObject.Visits vous voulez seulement la liste des visites actives. Ceci est déjà discuté ici; http://stackoverflow.com/questions/3718400/conditional-eager-loading –
@prashantht Je suis d'accord. Je ne pense vraiment pas qu'il y ait un moyen de faire autre que ce qu'ils suggèrent dans votre lien. –