LINQ 链表查询int为null值怎么处理

BXS_null 2020-06-04 09:39:38
   var resultData = (from R in received
join N in notInStock
on R.positionNo equals N.positionNo
into temp
from N in temp.DefaultIfEmpty()
select new
{
positionNo = R.positionNo==null?N.positionNo:R.positionNo,
itemCount = N.itemCoun //+ R.itemCount
}).ToList();

itemCount 是int类型 左连接的时候右边的表为null 结果这里就报错 怎么解决。
...全文
221 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
BXS_null 2020-06-04
  • 打赏
  • 举报
回复
解决了
  var resultData = (from R in received
join N in notInStock
on R.positionNo equals N.positionNo
into temp
from N in temp.DefaultIfEmpty()
select new
{
positionNo = R.positionNo == null ? N.positionNo : R.positionNo,
itemCount = (N?.itemCount == null ? 0 : N.itemCount) + R.itemCount
}).ToList();
BXS_null 2020-06-04
  • 打赏
  • 举报
回复
引用 6 楼 正怒月神 的回复:
[quote=引用 5 楼 BXS_null 的回复:]
这里我把N.itemCount去掉就不报错了

你先把itemCount设置为int? 类型看看[/quote]
额 怎么设置 我的 itemCount 是其他表计算出来的
 var notInStock = (from S in db.SR_PO
join T in db.Track
on S.bomsNo equals T.bomsNo
where T.qty_storage == 0 && positionNo != null && S.positionNo.Contains(positionNo)
group new { S.positionNo, itemCount = T.partNo } by S.positionNo into G
select new
{
positionNo = G.Key,
itemCount = G.Select(P => P.itemCount).Distinct().Count()
}).ToList();
正怒月神 2020-06-04
  • 打赏
  • 举报
回复
引用 5 楼 BXS_null 的回复:
这里我把N.itemCount去掉就不报错了
你先把itemCount设置为int? 类型看看
BXS_null 2020-06-04
  • 打赏
  • 举报
回复
引用 3 楼 正怒月神 的回复:
[quote=引用 2 楼 BXS_null 的回复:]
[quote=引用 1 楼 正怒月神 的回复:]
itemCount = N.itemCoun
改成
itemCount = N.itemCoun??0

[/quote]
那你改回原来的,把报错发出来看一下。[/quote]
这里我把N.itemCount去掉就不报错了
BXS_null 2020-06-04
  • 打赏
  • 举报
回复
正怒月神 2020-06-04
  • 打赏
  • 举报
回复
引用 2 楼 BXS_null 的回复:
[quote=引用 1 楼 正怒月神 的回复:] itemCount = N.itemCoun 改成 itemCount = N.itemCoun??0
[/quote] 那你改回原来的,把报错发出来看一下。
BXS_null 2020-06-04
  • 打赏
  • 举报
回复
引用 1 楼 正怒月神 的回复:
itemCount = N.itemCoun
改成
itemCount = N.itemCoun??0

正怒月神 2020-06-04
  • 打赏
  • 举报
回复
itemCount = N.itemCoun 改成 itemCount = N.itemCoun??0
gx_up 2020-06-04
  • 打赏
  • 举报
回复
var resultData = (from R in received join N in notInStock on R.positionNo equals N.positionNo into temp from N in temp.DefaultIfEmpty() select new { positionNo = R.positionNo == null ? N.positionNo : R.positionNo, itemCount = (N?.itemCount == null ? 0 : N.itemCount) + R.itemCount }).ToList();

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧