Dapper在执行具有可为null的FK的查询时抛出NullReferenceException
本文关键字:查询 FK NullReferenceException null 执行 Dapper | 更新日期: 2023-09-27 18:20:07
我正试图执行一个具有多个左联接的查询,因为其中一个外键列是可以为null的,当Dapper找到某个记录中该特定列可以为null时,当映射程序试图将结果放在一起时,会引发NullReferenceException。我使用"Id"作为我的PK列,其他表都没有问题,但我不太确定解决这个问题的最佳方法。
我需要能够返回一组结果,其中一些字段(和相关记录)可能为null,而其他字段可能不为null。。有没有一种方法可以绕过这个问题而不需要两个单独的查询?
这是查询的一部分。。阿尼。DeviceMacAddress是可为null的FK.
(query,
(ani, adm, d, ma, sma, n, i, sni) =>
{
ani.DeviceMacAddress = adm;
adm.Device = d; // Throws NullReferenceException here
adm.MacAddress = ma;
ani.NetworkV4 = n;
ani.IpAddressV4 = i;
ani.Status = sni;
ma.Status = sma;
return ani;
},
从位置上看,我猜adm
为null。所以…检查一下:
ani.DeviceMacAddress = adm;
if(adm != null) {
adm.Device = d;
adm.MacAddress = ma;
}
ani.NetworkV4 = n;
ani.IpAddressV4 = i;
ani.Status = sni;
if(ma != null) {
ma.Status = sma;
}
return ani;