小巧玲珑和交易范围?

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案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

【讨论】:

使用自动,我得到“不支持在环境事务中登记。” ... 可能是 .net 核心问题。 @IanWarburtoni 认为它可能是。见这里:github.com/dotnet/corefx/issues/23927 你不应该调用 scope.Complete() 吗? ***.com/a/53698092/3606250 @drizin 是的,但这只是一个小代码 sn-p 不是一个完整的例子。

以上是关于小巧玲珑和交易范围?的主要内容,如果未能解决你的问题,请参考以下文章

如何获得每小时范围内的交易次数

使用 Excel 显示日期范围内的出现次数

论信息系统项目的范围管理

SQL 搜索多个日期范围内出现的交易类型

交易信号指标RvmGann

DAY TRADER