我正在使用 dapper 和 C#7 ValueTuples(已安装的 nuget)执行以下查询:
await connection.QueryAsync<(int, Guid)>(
$@"SELECT tenant, pid FROM Table
ORDER BY id
OFFSET {skip} ROWS
FETCH NEXT {dbBatchSize} ROWS ONLY");
它返回 0 和 Guid.Empty 的列表。
如果我只使用 int 或只使用 Guid,它可以正常工作
我还尝试根据表中的列命名 ValueTuple:
await connection.QueryAsync<(int tenant, Guid pid)>("...")
同样的结果。
有人有什么建议吗? 提前致谢!
最佳答案
这是 dapper 的一个已知限制。它不支持将查询结果复制到 ValueTuple 中。 There is an open issue on Github requesting support for this .
该请求的 OP 创建了一个工作示例,说明如何在 4 月完成它,目前计划在 v2.0 版本中发布。
关于C# Dapper QueryAsync 到 ValueTuple 映射不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45562711/