代码之家  ›  专栏  ›  技术社区  ›  Query

事务处理是否处理DapperExtensions?

  •  0
  • Query  · 技术社区  · 7 年前

    我想将涉及DapperExtensions函数的多个方法调用分组到一个事务中,以便在任何一个失败时都可以回滚它们。

    这涉及调用预先存在的函数,其中一些函数

    • 使用DapperExtensions谓词,和/或
    • 利用他们自己的关系。

    答案需要同时考虑谓词调用和单个事务下的多个连接。

    我试过的

    到目前为止,我已经找到了两种方法,TransactionScope和IDbConnection。

    交易范围

    using (var transactionScope = new TransactionScope())
    {
          // Function calls here
         transactionScope.Complete();
    }
    

    尽管据我所知,这应该在.Net Core2.0中提供,但我使用的Dapper和/或DapperExtensions调用似乎不支持它。运行此命令会导致以下错误:

     "Enlisting in Ambient transactions is not supported."
    

    我浏览了关于这是否可能或将永远可能的文档,但结果是空的。

    IDB事务

    DapperExtensions的谓词函数似乎支持这一点,但到目前为止,我找不到在多个连接中使用同一事务的任何示例。一些旧的文章特别指出这是一种“基于连接”的事务处理方法,所以我不确定这是否可能。

    我发现关于DapperExtensions的文档非常简洁,所以如果有人能给我介绍一些关于其函数如何处理一般事务的参考,那也会非常有帮助!

    1 回复  |  直到 7 年前
        1
  •  1
  •   tukaef    7 年前

    这个 issue 被固定在 System.Data.SqlClient v4.5 .