manejo-de-transacciones-en-entity-framework-para-rollback

Volver

Última actualización: 2025-11-06 22:01


Manejo de Transacciones y Rollback en Entity Framework Core

Para hacer un rollback en la base de datos cuando usas SaveAsync() (por ejemplo, con Entity Framework Core), necesitas envolver la operación en una transacción. Si ocurre una excepción o decides cancelar la operación, puedes hacer rollback manualmente.

Ejemplo usando IDbContextTransaction

using var transaction = await dbContext.Database.BeginTransactionAsync();

try
{
    // Operaciones de base de datos
    dbContext.Add(entidad1);
    dbContext.Add(entidad2);

    await dbContext.SaveChangesAsync();

    // Confirmar la transacción
    await transaction.CommitAsync();
}
catch (Exception ex)
{
    // Revertir los cambios si ocurre un error
    await transaction.RollbackAsync();
    // Opcional: loguear o manejar el error
}

Notas importantes

  • Si no llamas a CommitAsync(), la transacción se revierte automáticamente al salir del bloque using.
  • Puedes usar RollbackAsync() explícitamente si capturas una excepción o detectas una condición que requiere cancelar.
  • Esto funciona tanto con SQL Server como con otras bases de datos compatibles con EF Core.