LINQ join:没有数据或null的集合

时间:2014-10-27 02:35:46

标签: c# linq

我有两个数据集合,这两个数据是彼此相关的。例如: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。请让我知道我在这里缺少什么。感谢

2 个答案:

答案 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 
                         };