jga*_*fin 5 .net transactionscope
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();
}
Run Code Online (Sandbox Code Playgroud)
是的,这应该可以正常工作。在内部,连接应保持打开状态,直到事务完成。请记住,如果使用多个连接,则可能需要 DTC,即使它们连接到同一个数据库。
此外,您没有提到您使用的是哪个数据库,但 MySQL 实现中存在导致此无法正常工作的错误。对于 MySQL,这已在 MySQL 5.1.3中修复。
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.close.aspx
通过 System.Transactions 启动的事务通过 System.Transactions 基础结构进行控制,不受 SqlConnection.Close 的影响。
调用 Close 仅意味着您的代码已完成连接。如果 ADO.NET 基础结构仍需要连接(以完成事务或连接池),则连接保持打开状态。
| 归档时间: |
|
| 查看次数: |
2335 次 |
| 最近记录: |