我不断收到带有以下 linq 的 ArgumentNullException“值不能为空。参数名称:内部”:
var dataSource = (from v in vouchers
join payAdj in paymentAdjustments on v.VoId equals payAdj.VoId into pTemp
from p in pTemp.DefaultIfEmpty()
select new
{
VoId = v.VoId,
OpId = v.OpId,
PaValue = p.PaValue
});
凭证和 paymentAdjustments 都是实体列表。
我已经阅读了很多关于此的帖子,并且我尝试的所有内容都不断给我相同(或类似)的错误。
将 PaValue 转换为可以为空的小数,即 PaValue = (decimal?)p.PaValue
在访问 PaValue 之前测试 p 是否为 null 即 PaValue = p != null ?p.PaValue:(十进制)0
使用 SingleOrDefault (应该只有一个)而不是 DefaultIfEmpty
做一个嵌套选择而不是加入...进入即PaValue =(来自paymentAdjustments中的p,其中p.VoId == v.VoId选择p.PaValue).DefaultIfEmpty()
我正在使用 c# 2010 Express 和 .Net 4。
任何其他建议将不胜感激。
谢谢马琳