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

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

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

适用于

另请参阅