Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Existe uma maneira automática de gerar um script de reversão ao inserir dados com LINQ2SQL?


Na verdade, é muito fácil fazer isso, porque você pode passar um SqlConnection no LINQ to SQL DataContext na construção. Basta executar essa conexão em uma transação e reverter essa transação assim que terminar.

Aqui está um exemplo:
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();
    }
}