我怎么能做一个批量选择在Dapper
本文关键字:选择 Dapper 一个 怎么能 | 更新日期: 2023-09-27 18:15:37
我有一个包含两列的复合主键的表。在Dapper . net中,我通过传入我的select语句以及参数数组来使用. query。我发现dapper在SELECT语句中只期望一个参数对象,不像INSERT和UPDATE语句中的Execute,我可以这样做:
var batchParams = new List<object>();
batchParams.add(new
{
ID = 50,
Lang = 40
});
batchParams.add(new
{
ID = 20,
Lang = 31
});
然后我可以把这个数组传递给我的execute调用。实际上,我想运行多个选择语句(每个语句将检索一行),然后将结果作为结果数组返回。这在纸面上可能吗?
它不是内置的,但是您可以添加一个扩展方法,做类似的事情:
foreach(var val in input)
foreach(var row in conn.Query<T>(sql, val))
yield return row;
这也可以通过LINQ-to-Objects中的SelectMany
实现:
var combined = batch.SeletMany(x => conn.Query<T>(sql, x));