【问题标题】:Dapper & TransactionScope?小巧玲珑和交易范围?
【发布时间】:2011-10-15 05:10:01
【问题描述】:

我刚开始玩 Dapper。到目前为止,我喜欢它。 dapper 不能与TransactionScope 一起使用吗?我注意到即使我从不调用TransactionScope.Complete,我的更改仍然会提交到数据库。如果现在不支持 TransactionScope,那么将来是否有计划支持它?如果没有那么你必须使用传统的事务管理(System.Transactions.Transaction)吗?

更新:我刚刚通过 Twitter 与 Sam 进行了交谈。它应该工作。我会在明天早上(在工作中)更新它的详细信息,看看是否有人能弄清楚为什么我的更改仍然提交到数据库,即使我从未调用过完成。

【问题讨论】:

    标签: transactionscope dapper


    【解决方案1】:

    这完全是我的错,没有完全理解 transactionscope。除非您在事务范围内打开连接,否则连接不会自动加入事务范围:

    自动入伍

      using (var scope = new TransactionScope())
      {
          con.Open();                                
          //update/delete/insert commands here
          ...
          scope.Complete();
      }
    

    手动登记

        con.Open();
        using (var scope = new TransactionScope())
        {
           con.EnlistTransaction(Transaction.Current);  
           //update/delte/insert statements here
           ...
           scope.Complete();
        }
    

    详情请见:Details

    【讨论】:

    猜你喜欢
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 2019-11-10
    相关资源
    最近更新 更多