Oracle
 sql >> Database >  >> RDS >> Oracle

Esiste un modo automatico per generare uno script di rollback quando si inseriscono dati con LINQ2SQL?

In realtà è abbastanza facile farlo, perché puoi passare un SqlConnection nel LINQ to SQL DataContext sulla costruzione. Basta eseguire questa connessione in una transazione e ripristinare la transazione non appena hai finito.

Ecco un esempio:

string output;

using (var connection = new SqlConnection("your conn.string"))
{
    connection.Open();
    using (var transaction = connection.StartTransaction())
    {
        using (var context = new YourDataContext(connection))
        {
            // This next line is needed in .NET 3.5.
            context.Transaction = transaction;

            var writer = new StringWriter();
            context.Log = writer;

            // *** Do your stuff here ***

            context.SubmitChanges();

            output = writer.ToString();
        }

        transaction.Rollback();
    }
}