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
возвращает исключение, SqlConnection если объект уже начал транзакцию с помощью BeginTransaction. Однако если транзакция является локальной транзакцией, запущенной в источнике данных (например, путем явного выполнения инструкции BEGIN TRANSACTION с помощью SqlCommand объекта ), EnlistDistributedTransaction откатывает локальную транзакцию и заверяет существующую распределенную транзакцию в соответствии с запросом. Вы не получаете уведомления о том, что локальная транзакция была откатена, и отвечаете за управление любыми локальными транзакциями, не запущенными с помощью BeginTransaction.