Share via


SqlConnection.EnlistDistributedTransaction(ITransaction) Metodo

Definizione

Permette l'integrazione nella transazione specificata come transazione distribuita.

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)

Parametri

transaction
ITransaction

Riferimento a un oggetto ITransaction esistente in cui eseguire l'integrazione.

Commenti

È possibile usare il EnlistTransaction metodo per integrare una transazione distribuita. Poiché integra una connessione in un'istanza Transaction di , EnlistTransaction sfrutta le funzionalità disponibili nello System.Transactions spazio dei nomi per la gestione delle transazioni distribuite, rendendola preferibile a EnlistDistributedTransaction a questo scopo. Per altre informazioni, vedere Transazioni distribuite.

È possibile continuare a integrare in una transazione distribuita esistente usando il metodo EnlistDistributedTransaction se l'integrazione automatica è disabilitata. L'integrazione in una transazione distribuita esistente assicura che, se viene eseguito il commit o il rollback della transazione, viene eseguito anche il commit o il rollback delle modifiche apportate dal codice nell'origine dati.

EnlistDistributedTransaction restituisce un'eccezione se l'oggetto SqlConnection ha già avviato una transazione utilizzando BeginTransaction. Tuttavia, se la transazione è una transazione locale avviata nell'origine dati , ad esempio eseguendo in modo esplicito l'istruzione BEGIN TRANSACTION usando un SqlCommand oggetto , EnlistDistributedTransaction esegue il rollback della transazione locale e inserisce nella transazione distribuita esistente come richiesto. Non si riceve un avviso che indica che è stato eseguito il rollback della transazione locale e che sono responsabili della gestione di eventuali transazioni locali non avviate tramite BeginTransaction.

Si applica a