J'essaie d'implémenter une requête dans LINQ qui utilise une jointure externe gauche avec plusieurs conditions dans la clause ON.
J'utiliserai l'exemple des deux tables suivantes: Project (ProjectID, ProjectName) et Task (TaskID, ProjectID, TaskName, Completed). Je veux voir la liste complète de tous les projets avec leurs tâches respectives, mais uniquement les tâches terminées.
Je ne peux pas utiliser de filtre pour Completed == true
car cela filtrera tous les projets qui n'ont pas de tâches terminées. Au lieu de cela, je souhaite ajouter Completed == true
à la clause ON de la jointure afin que la liste complète des projets soit affichée, mais seules les tâches terminées seront affichées. Les projets sans tâche terminée afficheront une seule ligne avec une valeur nulle pour Tâche.
Voici le fondement de la requête.
from t1 in Projects
join t2 in Tasks
on new { t1.ProjectID} equals new { t2.ProjectID } into j1
from j2 in j1.DefaultIfEmpty()
select new { t1.ProjectName, t2.TaskName }
Comment puis-je ajouter && t2.Completed == true
à l'article sur?
Je n'arrive pas à trouver de documentation LINQ sur la façon de procéder.