私はLP_taskテーブルとlp_Updateテーブルの2つのテーブルを持っています。私は、タスクの完全なリストと、特定の日付範囲内に掲示された更新のみが必要です。 LINQは他の結合基準をサポートしているようには見えませんが、それぞれのタスクと「等しく」なります。更新がない場合でも、すべてのタスク(左のテーブル)が必要です。 (左外部結合)LINQ左外部結合、右テーブルの日付範囲制限?
Dim TasksData = (From t In db.LP_Tasks _
Group Join up In db.LP_Updates On t.ID Equals up.TaskID Into upds = Group _
From u In upds.DefaultIfEmpty _
Order By t.TaskOrder, t.TaskNote, u.DateCreated Descending _
Select New With {t.ID, t.TaskNote, u.UpdateNote, u.DateCreated})
これは、すべてのLP_taskとそれぞれのLP_updateを取得するのに最適です。更新が利用できない場合でも、タスクは返されます(左外部結合)
ここでは、特定の日付範囲の更新を制限したいと考えています。私は更新を含むが、日付の要件を満たすために失敗したすべてのタスクを左側から取ることなくこれを行う方法を見ることができません。 WHERE句を追加すると、upds.DefaultIfEmptyがそれを行います。ここから何をすべきか分かりません。
PERFECT!私はLINQの重要な機能の1つを無視していると馬鹿げています。また、ラムダ式の形式を見せてくれてありがとう、私はあまりにも多くの人々がVB.NETでそれらを行うことはありません – TheDPQ