Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

TransactionScope e chamada de método que usa a mesma conexão


Se mais de uma conexão estiver aberta no mesmo TransactionScope ele será automaticamente escalado para o DTC.

Você precisa fechar a primeira conexão antes de chamar Method2 .
public static void Method1()
{
    using (TransactionScope scope = new TransactionScope())
    {
        bool success = true; // will be set to false in an omitted catch

        bool isSomethingHappened
        using (var connection = new SqlConnection(ConnectionString1))
        {
           isSomethingHappened = // Execute query 1
        }

       if(somethingHappened)
           Method2();

        if(success)
            scope.Complete();
    }
}