我是 linq 和 linq 到实体的新手,所以我的假设可能出错了,但我一直在不知不觉中尝试在 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();