.net - 单个事务下具有相同连接字符串的多个连接,提升事务?

标签 .net sql-server ado.net transactions msdtc

当使用 ado.net 并在单个事务中创建与 MS SQL Server 数据库的多个连接(使用 System.Transactions.TransactionScope)时,System.Transactions 是否将事务从轻量级事务管理器提升为分布式事务协调器( Vista 上的内核事务协调器),即使所有连接对象的连接字符串都相同?

文档对于这种具体情况有些含糊不清。它说,如果在事务期间打开另一个到服务器的连接,事务将会提升,但它没有说明是否一直这样做,或者仅当连接字符串不同时才这样做。如果连接字符串相同,它会提升事务,这对我来说是没有意义的,但如果是这样,它基本上会使轻量级事务管理器完全无用,IMO。

最佳答案

不幸的是,在当前版本中,它总是会提升交易量。

正如您所说,这使得 TransactionScope 的用处比其他情况要少得多。我相信有计划在未来的版本中改变这一点。

关于.net - 单个事务下具有相同连接字符串的多个连接,提升事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/394702/

相关文章:

.net - 是否可以在 Winforms TreeView 中使节点不可见?

sql-server - SSIS合并加入

sql - 将 Nvarchar(max) 转换为 nvarchar 的最佳/最有效方法 (30)

linq - LINQ 何时胜过 ado.net

.net - 如果我从未在另一个事务中读取 volatile 数据,那么 SqlTransaction 中的 IsolationLevel 有什么用?

c# - LINQ 将数组 [x0,y0, ..., xN, yN] 转换为可枚举的 [p0, ..., pN]

asp.net - Gridview 将当前行与上一行进行比较

.net - 如何向客户端报告长时间运行的 PostgreSQL 函数的进度

.net - 自动/智能插入 "itself"对象

sql-server - select * 只返回一个值