LINQ'da, ON yan tümcesinde birden çok koşulla bir sol dış birleşim kullanan bir sorgu uygulamaya çalışıyorum.
Aşağıdaki iki tablo Project (ProjectID, ProjectName) ve Task (TaskID, ProjectID, TaskName, Completed) örneğini kullanacağım. İlgili görevleriyle birlikte tüm projelerin tam listesini görmek istiyorum, ancak yalnızca tamamlanan görevler.
İçin filtre kullanamıyorum Completed == true
çünkü bu, tamamlanmış görevleri olmayan tüm projeleri filtreleyecektir. Bunun yerine Completed == true
, birleşimin ON maddesine eklemek istiyorum, böylece projelerin tam listesi gösterilecek, ancak yalnızca tamamlanmış görevler gösterilecek. Tamamlanmış görev içermeyen projeler, Görev için boş değer içeren tek bir satır gösterecektir.
İşte sorgunun temeli.
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 }
&& t2.Completed == true
On maddesine nasıl eklerim ?
Bunun nasıl yapılacağına dair herhangi bir LINQ belgesi bulamıyorum.