当前位置:  开发笔记 > 编程语言 > 正文

Linq加入查询错误

如何解决《Linq加入查询错误》经验,为你挑选了1个好方法。

我正在尝试连接多个数据表来创建单个数据表.这是查询.

var row = from r0w1 in dt_vi.AsEnumerable()
          join r0w2 in dt_workcenter.AsEnumerable()
          on r0w1.Field("wcID") equals r0w2.Field("iD")
          join r0w3 in dt_recipe.AsEnumerable()
          on r0w1.Field("curingRecipeID") equals r0w3.Field("recipe_id") join r0w4 in dt_defect.AsEnumerable()
          on r0w1.Field("defectID") equals r0w4.Field("defect_id") into ps
          from r0w4 in ps.DefaultIfEmpty()
          select r0w1.ItemArray.Concat(r0w2.ItemArray.Concat(r0w3.ItemArray.Concat(r0w4.ItemArray))).ToArray();

foreach (object[] values in row)
    dt.Rows.Add(values);

我试着把r0w1和r0w4加入LEFT OUTER JOIN.但在这里我得到了错误

你调用的对象是空的

错误似乎在

r0w4.ItemArray

可能是r0w4没有得到任何价值.可能的原因是什么?



1> Rahul Singh..:

当没有行匹配时,问题是ps.DefaultIfEmpty()将返回默认值(null在这种情况下),因此它会抛出该错误.

您可以这样更改: -

r0w3.ItemArray.Concat(r0w4 != null ? r0w4 .ItemArray : new object[] {}))


现在工作正常.谢谢你的解决方案.
推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有