在我们的应用程序中,我在DAL中有一个方法,它执行一个SQL查询,该查询应返回2个结果集。我使用dapper将结果集映射到DTO。在窗户上工作正常。
在Mono上运行时,查询无法获取结果(Dapper抛出空引用异常)。
其他SQL查询在Mono上运行正常。该应用程序能够很好地读/写SQL服务器。
Mono SQL服务器驱动程序中是否存在多个结果集的已知问题? 我无法找到任何记录在案的未解决问题。
这是方法的代码:
using (var connection = ConnectionFactory.OpenConnection())
{
if (connection == null)
{
throw new System.ApplicationException("Could not open DB connection for DAL.");
}
Logger?.Trace("Got connection for DAL.");
var sql = @"SELECT A.x, A.y FROM A;
SELECT A.x, B.z, B.w
FROM C INNER JOIN A ON C.x = A.x
INNER JOIN B ON C.z = B.z";
using (var multiRes = connection.QueryMultiple(sql))
{
if(multiRes == null)
{
throw new System.ApplicationException("No results returned from db.");
}
res.AddRange(multiRes.Read<aDTO>());
var mapping = multiRes.Read<aDTO, bDTO, aDTO>((a, b) =>
{
...
return a;
}, splitOn: "z").ToList();
}
}