我们目前正在使用 dapper 来处理一些非常昂贵的更新/删除场景,我们对此非常满意。
现在我们有以下场景,我想加快速度。
如果我们以同步方式执行此操作,我们总共将花费大约 61 秒的等待时间。
我们能不能加快速度,用
ExecuteAsync
调用第一次更新?方法,但不是等待它。像这样:Connection.ExecuteAsync("Update 1", new { someValue }, Transaction, 120);
Connection.Execute("Update 2", new { someValue }, Transaction);
注意缺少
await
关键词。这会加快速度,但这是一个好主意吗,它会在事务中工作吗?
当事务提交被命中,并且第一次更新仍在执行时会发生什么?
或者在没有 await 的情况下使用 ExecuteAsync 是一个坏主意?
假设更新 2 不依赖于更新 1。
最佳答案
如果第一次更新在第二次的相同数据中不起作用并且您不需要等待结果,则可以在不等待的情况下以异步模式执行它。
我建议你阅读这个页面:
http://www.joesauve.com/async-dapper-and-async-sql-connection-management/
它解释了如何通过与数据库的异步连接来执行异步命令,我认为它对您很有用。
关于asynchronous - 在事务中使用 dapper async,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27742805/