我们目前正在使用dapper处理一些非常昂贵的更新/删除方案,我们对此非常满意。
现在我们有以下方案,我想加快速度。
如果我们以同步方式执行此操作,我们将花费大约61秒等待。
我们可以加快速度,使用ExecuteAsync
方法调用第一个更新,但不等待它。像这样:
Connection.ExecuteAsync("Update 1", new { someValue }, Transaction, 120);
Connection.Execute("Update 2", new { someValue }, Transaction);
请注意缺少await
关键字。
这会加快速度,但这是一个好主意,它会在交易中运作吗? 命中事务提交时会发生什么,第一次更新仍在执行? 或者在没有等待的情况下使用ExecuteAsync是一个坏主意吗?
假设更新2不依赖于更新1.
答案 0 :(得分:0)
如果第一次更新在第二次更新中不起作用而您不需要等待结果,则可以在不等待的情况下以异步模式执行。 我建议你阅读这个页面:
http://www.joesauve.com/async-dapper-and-async-sql-connection-management/
它解释了如何使用与数据库的异步连接执行异步命令,我认为它对您有用。