私はlinqとlinqtoentityを初めて使用するため、仮定が間違っている可能性がありますが、L2EでDefaultIfEmptyを無意識のうちに使用しようとしています。
何らかの理由で、結果セットをリストに変換すると、Defaultifempty()が機能します。誤ってLinq領域にクロスオーバーしたかどうかはわかりません。以下のコードは機能しますが、誰かが理由を教えてもらえますか?そしてそれがうまく機能すれば、それは他の人々の助けになるでしょう。
var results = (from u in rv.tbl_user
.Include("tbl_pics")
.Include("tbl_area")
.Include("tbl_province")
.ToList()
where u.tbl_province.idtbl_Province == prov
select new { u.firstName, u.cellNumber,
u.tbl_area.Area, u.ID,u.tbl_province.Province_desc,
pic = (from p3 in u.tbl_pics
where p3.tbl_user.ID == u.ID
select p3.pic_path).DefaultIfEmpty("defaultpic.jpg").First())
}
).ToList();