以下LINQ语句仅返回没有null字段的所有行。我不明白为什么我需要所有行,而不仅仅是所有行都设置的行。有什么想法吗?
var caseList =
(from p in GetPersonList()
join c in backEnd.GetCarList()
on p.PId equals c.PId
orderby p.PId descending
select new Person
{
PName = p.PName,
PId = p.PId,
CModel = c.CModel,
}).ToList();
return personList;
我认为问题是这不是左外连接,但是当我尝试c.CModel不起作用时。它说当前背景下不存在“c”。我想我可以做一些像select new Person { Person p, Car c }
这样的工作,但是我已经尝试了谷歌,但却找不到如何正确地做到这一点。
感谢您的任何建议。
答案 0 :(得分:1)
from p in GetPersonList()
join c in backEnd.GetCarList()
on p.PId equals c.PId
into joinResults
from c in joinResults.DefaultIfEmpty()
orderby p.PId descending
select new Person
{
PName = p.PName,
PId = p.PId,
CModel = c == null ? ( CModel )null : c.CModel,
}).ToList()