ON句で複数の条件を持つ左外部結合を使用するクエリをLINQに実装しようとしています。
次の2つのテーブルProject(ProjectID、ProjectName)とTask(TaskID、ProjectID、TaskName、Completed)の例を使用します。すべてのプロジェクトとそれぞれのタスクの完全なリストを表示したいが、完了したタスクのみを表示したい。
フィルターを使用できませんCompleted == true
。タスクが完了していないプロジェクトをフィルターで除外するためです。代わりにCompleted == true
、プロジェクトの完全なリストが表示され、完了したタスクのみが表示されるように、結合のON句に追加したいと思います。タスクが完了していないプロジェクトでは、タスクの値がnullの単一行が表示されます。
これがクエリの基礎です。
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のドキュメントが見つからないようです。