Sto cercando di implementare una query in LINQ che utilizza un join esterno sinistro con più condizioni nella clausola ON.
Userò l'esempio delle seguenti due tabelle Project (ProjectID, ProjectName) e Task (TaskID, ProjectID, TaskName, Completed). Voglio vedere l'elenco completo di tutti i progetti con le rispettive attività, ma solo quelle che sono state completate.
Non posso usare un filtro per Completed == true
perché filtrerà tutti i progetti che non hanno attività completate. Invece voglio aggiungere Completed == true
alla clausola ON del join in modo che venga mostrato l'elenco completo dei progetti, ma verranno mostrate solo le attività completate. I progetti senza attività completate mostreranno una singola riga con un valore nullo per Attività.
Ecco le basi della query.
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 }
Come aggiungo && t2.Completed == true
alla clausola on?
Non riesco a trovare alcuna documentazione LINQ su come eseguire questa operazione.