SqlConnection.EnlistDistributedTransaction(ITransaction) 方法

定义

在指定的事务中登记为分布式事务。

public:
 void EnlistDistributedTransaction(System::EnterpriseServices::ITransaction ^ transaction);
public void EnlistDistributedTransaction (System.EnterpriseServices.ITransaction transaction);
member this.EnlistDistributedTransaction : System.EnterpriseServices.ITransaction -> unit
Public Sub EnlistDistributedTransaction (transaction As ITransaction)

参数

transaction
ITransaction

对用于登记的现有 ITransaction 的引用。

注解

可以使用 EnlistTransaction 方法在分布式事务中登记。 由于它登记实例中的 Transaction 连接, 因此 EnlistTransaction 利用命名空间中 System.Transactions 可用的功能来管理分布式事务,因此,出于此目的, EnlistDistributedTransaction 更可取。 有关详细信息,请参阅分布式事务

如果禁用了自动登记,则可以继续使用 EnlistDistributedTransaction 方法在现有分布式事务中登记。 在现有分布式事务中登记可确保提交或回滚事务时,也会提交或回滚数据源上的代码所做的修改。

EnlistDistributedTransaction如果 已使用 BeginTransaction启动事务,SqlConnection则返回异常。 但是,如果事务是在数据源 (启动的本地事务,例如,通过使用 SqlCommand 对象) 显式执行 BEGIN TRANSACTION 语句, EnlistDistributedTransaction 会回滚本地事务,并按请求在现有分布式事务中登记。 你不会收到本地事务已回滚的通知,并且负责管理未使用 BeginTransaction启动的任何本地事务。

适用于