在事务中使用dapper异步

时间:2015-01-02 13:10:52

标签: asynchronous transactions dapper

我们目前正在使用dapper处理一些非常昂贵的更新/删除方案,我们对此非常满意。

现在我们有以下方案,我想加快速度。

  • 更新1大约需要60秒。
  • 更新2需要<1秒。

如果我们以同步方式执行此操作,我们将花费大约61秒等待。 我们可以加快速度,使用ExecuteAsync方法调用第一个更新,但不等待它。像这样:

Connection.ExecuteAsync("Update 1", new { someValue }, Transaction, 120);
Connection.Execute("Update 2", new { someValue }, Transaction);

请注意缺少await关键字。

这会加快速度,但这是一个好主意,它会在交易中运作吗? 命中事务提交时会发生什么,第一次更新仍在执行? 或者在没有等待的情况下使用ExecuteAsync是一个坏主意吗?

假设更新2不依赖于更新1.

1 个答案:

答案 0 :(得分:0)

如果第一次更新在第二次更新中不起作用而您不需要等待结果,则可以在不等待的情况下以异步模式执行。 我建议你阅读这个页面:

http://www.joesauve.com/async-dapper-and-async-sql-connection-management/

它解释了如何使用与数据库的异步连接执行异步命令,我认为它对您有用。