没有DTC的TransactionScope替代方案

Ped*_*dre 6 c# msdtc transactions .net-4.0 transactionscope

有什么替代transactionScope不需要启用DTC ??

在交易中,我需要做两个操作:

  1. 创建一个用户(使用成员资格--sql成员资格提供者)
  2. 做一次插入操作.

Hen*_*rik 11

TransactionScope使用.Net中的LTM - 轻量级事务管理器.仅当您在同一事务中打开多个连接或在数据库之间切换时,TransactionScope才会将事务提升到基于2PC的TX管理器DTC.

对于MS SQL Server 2008及更高版本,仅当您打开与不同 DB的连接时,DTC才会参与.或者,如果要在多个线程的相同事务中打开连接,则除非您正在使用DependentTransaction,否则如果要进行线程处理,则应在全局事务中登记.

作为一个侧面点:我对Castle.Transactions中的多线程故事有一些支持.

侧点#2:如果您使用TransactionScope,请确保明确声明IsolationLevel,否则您将序列化所有事务(IsolationLevel.Serializable)!

  • 几乎是正确的.仅当您打开_different_ connections(SQL Server 2008+)时,事务才会升级(如果使用相同的连接字符串,则仍将使用LTM). (3认同)