gpt4 book ai didi

linq left join - 选择左实体的属性

转载 作者:行者123 更新时间:2023-12-04 05:41:41 24 4
gpt4 key购买 nike

我不断收到 ArgumentNullException "Value cannot be null.Parameter name:inner"与以下 linq:

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
});

凭证和支付调整都是实体列表。

我已经阅读了很多关于此的帖子,我尝试的所有内容都不断给我相同(或类似)的错误。
  • 将 PaValue 转换为可以为空的小数,即 PaValue = (decimal?)p.PaValue
  • 在访问 PaValue 之前测试 p 是否为 null,即 PaValue = p != null ? p.PaValue : (十进制)0
  • 使用 SingleOrDefault(应该只有一个)而不是 DefaultIfEmpty
  • 做一个嵌套的选择而不是 join...into 即 PaValue = (from p in paymentAdjustments
    其中 p.VoId == v.VoId
    选择 p.PaValue).DefaultIfEmpty()

  • 我正在使用 c# 2010 Express 和 .Net 4。

    任何其他建议将不胜感激。

    谢谢
    马琳

    最佳答案

    我知道这很旧,但是对于任何寻找答案的人来说,您要加入的两个对象之一为空。先做这个。

    如果(凭证!= null && payAdjustments != null)
    ...

    关于linq left join - 选择左实体的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11188307/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com