Tengo una pregunta un poco tonta, pero no encontré una respuesta.
¿Hay alguna diferencia entre una sola llamada a SaveChanges() y una sola llamada a SaveChanges() dentro de una transacción? (Estoy usando Entity Framework en la aplicación .net core 5)
Quiero crear un registro en una tabla y actualizar datos en otra.
Por ejemplo, sería:
users.Password = "..." var passwordReset = new PasswordReset(...) _context.Add(passwordReset); _context.SaveChanges();Y con transacción:
using (var transaction = _context.Database.BeginTransaction()) { users.Password = "..." var passwordReset = new PasswordReset(...) _context.Add(passwordReset); _context.SaveChanges(); transaction.Commit(); }Quiero asegurarme de que dos consultas se completarán con éxito, pero no sé qué opción sería la mejor para mí.
Gracias por adelantado
¿Hay alguna diferencia entre una sola llamada [a]
SaveChanges()y [una] sola llamada [a]SaveChanges()dentro de una transacción? (Estoy usando Entity Framework en la aplicación .net core 5)
Realmente no. Una sola llamada a SaveChanges() forma su propia transacción. El uso de una transacción es una forma de agrupar varias llamadas a SaveChanges para que todas puedan tener éxito o fallar (o tener un control más detallado para revertir parcialmente en caso de falla).
Ver la referencia sobre transacciones en EF Core