私は3つのテーブルを持っています。
表linq join query nullを返す
id name des table2 table3
1 xyz TableA_des1 null 1
2 abc TableA_des2 1 2
3 hgd TableA_des2 2 3
表B
id name des Active
1 xyz TableB_des1 1
2 abc TableB_des2 1
3 hgd TableB_des2 1
表C
id name des Active
1 xyz TableC_des1 1
2 abc TableC_des2 1
3 hgd TableC_des2 1
LINQのクエリ
var res = (from a in TableA
where id = 1
join b in TableB on a.table2 equals b.id into ab
from bdata in ab.DefaultIfEmpty()
where bdata.Active = true
join c in TableC on a.table3 equals c.id into ac
from cdata in ac.DefaultIfEmpty()
where cdata.Active = true
select new { data1 = a.name, data2 = bdata?? string.Empty, data3 = cdata?? string.Empty})
約クエリがnullを与えています。デバッグ時の変数resにはnullがあります。
'null'なのでが、空のコレクションを返さない: - 実際に第三の方法は、(最初の2つのオプションが好ましいalthought)が存在することを意味
は、明示的な
null
チェックを含みます。 Linqクエリは 'null'を返しません。(ヌルかもしれない特定のレコードを取得しない限り) –