在Dapper documentation中,它表示可以使用IEnumerable
参数多次执行命令。它提供了以下例子:功能“多次执行命令”是否会导致数据库的多次往返?
connection.Execute(@"insert MyTable(colA, colB) values (@a, @b)",
new[] { new { a=1, b=1 }, new { a=2, b=2 }, new { a=3, b=3 } }
).IsEqualTo(3); // 3 rows inserted: "1,1", "2,2" and "3,3"
这是否会导致多次往返于数据库(一个在IEnumerable<T>
每个T
即)?还是Dapper足够聪明,可以将多个查询转换为批处理,并且只需执行一次往返?该文档说明了一个示例用法是批量加载,所以我怀疑它只做了一次往返,但我想确保在将它用于性能敏感的代码之前。
作为后续问题,根据第一个问题的答案,我会好奇如何处理交易?也就是说,整套T
s是否有一笔交易,或者每笔交易T
有一笔交易?
为什么不测试它并运行SQL Profiler? –