Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

TransactionScope e chiamata al metodo che utilizza la stessa connessione

Se sono aperte più connessioni sotto lo stesso TransactionScope verrà automaticamente inoltrato al DTC.

Devi chiudere la prima connessione prima di chiamare 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();
    }
}