Transacción explícita en Entity Framework 7

asp.net-core c# entity-framework-core

Pregunta

¿Alguien sabe cómo crear una transacción explícita en Entity Framework 7? Toda la información que encuentro está referida a la versión 6 de EF. La documentación también está muy incompleta, así que, ¿alguien podría dar un ejemplo de ello?

Tengo un dbContext y debo eliminar una entidad y sus objetos relacionados, y luego volver a insertarlos, pero en la misma transacción, así que siempre tendré una "versión" de las filas.

Respuesta aceptada

La funcionalidad de transacción se incluye en EF7 a partir de RC1 solamente (ver la declaración ). La llamada de .SaveChanges() (o .SaveChangesAsync() ) debe usar la transacción automática. Entonces supongo que el estado de algunos elementos de las entidades debería marcarse como Eliminado antes, por ejemplo.

Se puede iniciar la transacción explícitamente envolviendo un fragmento de manipulación en la base de datos dentro de

using (context.Database.BeginTransaction()) {
    /*do something*/
}

La transacción se confirmará mediante la llamada de .Dispose() al final del using bloque. Uno puede usar alternativamente

using (context.Database.BeginTransaction()) {
    /*do something*/
}

En general, todo debería verse en la versión anterior de Entity Framework. Vea la publicación por ejemplo.




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué