複数の条件と OR を使用して linq 結合を行う方法を知りたいです。
例:
var i = (from d in context.Table1
join b in context.Table2
on new {r1 = d.col1, r2 = d.col2}
equals new {r1 = b.col1, r2 = b.col2}
|| b.col3.ToLower() equals "xyz"
into bd
from k in bd.DefaultIfEmpty()
ORの部分が爆発しています。
SQL の例:
SELECT * FROM Table1 T1
LEFT JOIN Table2 T2 ON (T1.Col1 = T2.Col1 AND T1.Col2 =T2.Col2)
OR (T1.Col1 = T2.Col1 AND T2.Col2 = 'XYZ')
説明:
T1.Col1 は T2.COl1 と一致する必要があります - 必須の結合
それで
T1.Col2 は、T2.COl2 = "XYZ" でない限り T2.Col2 と一致する必要があり、Col1 でのみ結合します。