entity-framework - transaction - transacciones entity framework 6
¿Cómo compartir una transacción en dos dbContext con EF6? (2)
Estoy usando EF6 y sé que tiene dos métodos para usar una transacción, BeginTransaction y UseTransaction.
Solía usar solo un dbContext, pero en mi caso, necesito usar un dbContext auxiliar y necesito que este segundo dbContext use la misma transacción que el principal. Intento usar este código:
using(Entities miDbContext = new Entities())
{
using (DbContextTransaction miTransaccion = miDbContext.Database.BeginTransaction())
{
Entities miDbContext2 = new Entities();
miDbContext2.DataBase.UseTransaction(miTransaccion);
}
}
Pero me aparece un error en UseTransaction porque miTrasaccion no es del tipo correcto.
Me gustaría saber cómo puedo compartir la misma transacción entre dos dbContexts.
Gracias.
Primero debe pasar la conexión de miDbContext a miDbContext2.
Pruebe el siguiente código. Deberia de funcionar.
Entities miDbContext2 = new Entities(miDbContext.Database.Connection, false);
miDbContext2.DataBase.UseTransaction(miTransaccion);
Para agregar a la respuesta de SajidQ con la mejor sintaxis
miDbContext2.Database.UseTransaction(dbContextTransaction.UnderlyingTransaction);