事务范围和数据库连接

7
事务范围 (TransactionScope) 是否可以与已关闭的数据库连接一起使用?
using (var transaction = new TransactionScope(TransactionScopeOption.Required))
{
    // creates a new connection, does stuff, commit trans and close
    repos1.DoSomething(); 

    // creates a new connection, does stuff, commit trans and close
    repos2.DoSomething(); 

    transaction.Complete();
}
2个回答

5

没问题,这应该可以正常工作。在内部,连接应该会保持开启直到事务完成。请注意,如果使用多个连接,即使它们连接的是同一个数据库,也可能需要使用 DTC。

另外,您没有提到使用哪种数据库,但是在 MySQL 实现中存在导致此操作无法正常工作的错误。对于 MySQL 来说,在 MySQL 5.1.3 中已修复此问题


5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接