【发布时间】:2014-09-01 06:53:19
【问题描述】:
我正在尝试执行一个具有多个左连接的查询,因为其中一个外键列可以为空,并且当 Dapper 找到该特定列可以为空的记录时,映射器会抛出 NullReferenceException试图把结果放在一起。 我使用“Id”作为我的 PK 列,并且没有遇到任何其他表的问题,但我不太确定解决这个问题的最佳方法。
我需要能够返回一组结果,其中一些字段(和相关记录)可能为空,而其他字段可能不为空。有没有办法在没有两个单独的查询的情况下解决这个问题?
这是查询的一部分。ani.DeviceMacAddress 是可为空的 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;
},
【问题讨论】:
-
刚刚想到,这是 QueryMultiple 的任务吗?一个查询使用适当的映射将数据集限制在列不为空的位置,另一个查询使用自己的映射将数据集限制在列不为空的位置?