sql >> Base de Datos >  >> RDS >> Sqlserver

TransactionScope y llamada de método que usa la misma conexión

Si hay más de una conexión abierta bajo el mismo TransactionScope se escalará automáticamente al DTC.

Debe cerrar la primera conexión antes de llamar a 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();
    }
}