Al usar EF Core, se recomienda usar transacciones con lo siguiente:

using (var dbContextTransaction = _context.Database.BeginTransaction())
{

}

¿Cómo se usa una transacción que puede abarcar múltiples contextos que también tienen diferentes cadenas de conexión, es decir, no podemos usar SqlConnection.BeginTransation ya que los 2 contextos tienen diferentes cadenas de conexión?

Cualquier ayuda sería apreciada.

0
user2981411 16 nov. 2019 a las 20:13

1 respuesta

La mejor respuesta

Puede usar objetos TransactionScope cuando necesite una transacción que tenga un alcance mayor que el contexto que está usando. Esto requiere Entity Framework Core 2.1, como se describe en https: // docs. microsoft.com/en-us/ef/core/saving/transactions:

Uso de System.Transactions

Nota : esta función es nueva en EF Core 2.1.

Es posible utilizar transacciones ambientales si necesita coordinarse en un ámbito más amplio.

Entonces usa algo como esto:

using (var scope = new TransactionScope()) {
    // create and work with context here
}
1
Community 20 jun. 2020 a las 09:12