sql >> Base de Datos >  >> RDS >> Oracle

¿Existe una forma automática de generar un script de reversión al insertar datos con LINQ2SQL?

En realidad, es bastante fácil hacer esto, porque puede pasar una SqlConnection en LINQ to SQL DataContext en construcción Simplemente ejecute esta conexión en una transacción y revierta esa transacción tan pronto como termine.

He aquí un ejemplo:

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();
    }
}