LINQ联接:没有数据或为null的集合

本文关键字:null 集合 数据 联接 LINQ | 更新日期: 2023-09-27 18:27:59

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

LINQ联接:没有数据或为null的集合

要进行左联接,请尝试以下操作:

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 
                         };
people.ID equals phone.PersonID 

这是你的问题,如果你的手机为null,这个语句将永远不会得到null以外的任何结果。