Tôi đang cố gắng triển khai một truy vấn trong LINQ sử dụng kết nối bên ngoài bên trái với nhiều điều kiện trong mệnh đề ON.
Tôi sẽ sử dụng ví dụ về hai bảng sau đây Dự án (ProjectID, ProjectName) và Tác vụ (TaskID, ProjectID, TaskName, Hoàn thành). Tôi muốn xem danh sách đầy đủ của tất cả các dự án với các nhiệm vụ tương ứng của chúng, nhưng chỉ những nhiệm vụ đã hoàn thành.
Tôi không thể sử dụng bộ lọc Completed == true
vì điều đó sẽ lọc ra bất kỳ dự án nào không có nhiệm vụ đã hoàn thành. Thay vào đó, tôi muốn thêm Completed == true
vào điều khoản BẬT của phép nối để danh sách đầy đủ các dự án sẽ được hiển thị, nhưng chỉ các nhiệm vụ đã hoàn thành mới được hiển thị. Các dự án không có nhiệm vụ đã hoàn thành sẽ hiển thị một hàng có giá trị null cho Nhiệm vụ.
Đây là nền tảng của truy vấn.
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 }
Làm cách nào để thêm && t2.Completed == true
vào mệnh đề on?
Tôi dường như không thể tìm thấy bất kỳ tài liệu LINQ nào về cách thực hiện việc này.