我在下面有这个查询在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,如果重要的话。
任何帮助将不胜感激
答案 0 :(得分:0)
第二个左连接中的cl.PlaceID会得到一个空引用异常吗? cl的原因是null,因此cl.PlaceID会导致NullReferenceException。
您应该使用GroupJoin来执行此操作。请查看this question