我有两个数据集合,这两个数据是彼此相关的。例如:ID,PersonName和其他集合是PhoneUnit,PersonID ...
我必须在这里做一些行
var results = from people in person join phone in phones.DefaultIfEmpty() on people.ID equals phone.PersonID select new { people.PersonName, phone.PhoneUnit == null ? "empty" : phone.PhoneUnit };
但我的问题是,有时Phone集合返回0结果,因为数据库中没有数据。但是我仍然需要显示PersonName和PhoneUnit
我收到了NullReferenceException。请让我知道我在这里缺少什么。感谢
答案 0 :(得分:0)
people.ID equals phone.PersonID
这是你的问题,如果你的手机是空的,这个语句永远不会得到除null之外的任何结果。
答案 1 :(得分:0)
要进行左连接,请尝试以下操作:
var results = from people in person
join phone in phones on people.ID equals phone.PersonID into phone_j
from phone in phone_j.DefaultIfEmpty()
select new {
people.PersonName
phone.PhoneUnit
};