繁体   English   中英

尝试使用defaultifempty方法连接两个以上的表时,linq表达式中出现空引用错误

[英]Getting null reference error in linq expression when trying to join more than 2 tables using defaultifempty method

我试图使用defaultIfEmpty离开联接三个表,如果第二个表中没有匹配项,则分配空值,然后我使用第二个表值联接第三个表。

var test = (from Eqpt in Eqpts
            join SystemEqpt in FleetSysEqpt on SystemEqpt.ID equals eqpt.SwCompanyEqptKey into sysEqptTemp
            from a in sysEqptTemp.DefaultIfEmpty()
            join System in System on a.SwFleetSystemKey equals System.ID 
)

当“ a”为空时,我收到空对象引用错误。 加入时检查“ a”是否为空的任何建议。

您只需要添加一个where条件

var test = (from Eqpt in Eqpts
            join SystemEqpt in FleetSysEqpt on SystemEqpt.ID equals eqpt.SwCompanyEqptKey into sysEqptTemp
            from a in sysEqptTemp.DefaultIfEmpty()
            join System in System on a.SwFleetSystemKey equals System.ID 
            where a != null
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM