ฉันกำลังพยายามใช้แบบสอบถามใน LINQ ที่ใช้การรวมภายนอกด้านซ้ายที่มีหลายเงื่อนไขในส่วนคำสั่ง ON
ฉันจะใช้ตัวอย่างของสองตารางต่อไปนี้Project (ProjectID, ProjectName) และTask (TaskID, ProjectID, TaskName, Completed) ฉันต้องการดูรายการทั้งหมดของโครงการทั้งหมดที่มีงานตามลำดับ แต่เฉพาะงานที่เสร็จสมบูรณ์
ฉันไม่สามารถใช้ตัวกรองCompleted == true
เพราะจะกรองโปรเจ็กต์ใด ๆ ที่ไม่มีงานที่เสร็จสมบูรณ์ออกไป แต่ฉันต้องการเพิ่มCompleted == true
ในส่วนคำสั่ง ON ของการเข้าร่วมเพื่อให้แสดงรายการโครงการทั้งหมด แต่จะแสดงเฉพาะงานที่เสร็จสมบูรณ์เท่านั้น โครงการที่ไม่มีงานที่เสร็จสมบูรณ์จะแสดงแถวเดียวพร้อมค่าว่างสำหรับงาน
นี่คือรากฐานของแบบสอบถาม
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 ได้อย่างไร?
ฉันไม่พบเอกสารของ LINQ เกี่ยวกับวิธีการทำสิ่งนี้