left join linq - 对象引用为null

时间:2016-06-27 19:30:25

标签: c# linq .net-4.5

我在下面有这个查询在LINQPad中可以正常工作,但它在我的项目中给了我一个错误

var query = from c in corps
            join cl in corpsPlaces on c.CorpID equals cl.CorpID into cl_join
            from cl in cl_join.DefaultIfEmpty()
            join l in places on cl.PlaceID equals l.PlaceID into l_join
            from l in l_join.DefaultIfEmpty()
            select new
            {
             c.CorpID,
             Name =  l.PlaceName == null ? c.CorpName : (l.PlaceName + " - " + c.CropName)
            };

我知道我正在使用左连接,名称可以为null因此我使用了条件运算符和错误行

 join l in places on cl.PlaceID equals l.PlaceID into l_join

我正在使用EF 6,如果重要的话。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

第二个左连接中的cl.PlaceID会得到一个空引用异常吗? cl的原因是null,因此cl.PlaceID会导致NullReferenceException。

您应该使用GroupJoin来执行此操作。请查看this question