why transaction transacciones practices not net mvc framework best asp c# entity-framework transactions entity-framework-6 transactionscope

c# - transacciones - transaction entity framework 5



Database.BeginTransaction vs Transactions.TransactionScope (1)

Encontré la respuesta en la documentación de Entity Framework 6:

Con la introducción de EF6, Microsoft recomienda usar nuevos métodos API: Database.BeginTransaction() y Database.UseTransaction() . Aunque System.Transactions.TransactionScope todavía está muy bien soportado, ya no es necesario para la mayoría de los usuarios de EF6.

Mientras que Database.BeginTransaction() se usa solo para transacciones de operaciones relacionadas con la base de datos, System.Transactions.TransactionScope , además de eso, hace posible que el ''código C # simple'' también sea transaccional.

Por lo tanto, use Database.BeginTransaction() donde siempre solo haga operaciones relacionadas con db en una transacción en EF6; de lo contrario, use System.Transactions.TransactionScope para mezclar las operaciones de db y el código C # en una transacción.

Para aquellos que aún prefieren el enfoque de TransactionScope , se recomienda que revisen sus limitaciones, especialmente en escenarios de nube (los escenarios de nube no admiten transacciones distribuidas).

Más información se puede encontrar here

¿Cuál es la diferencia entre System.Transactions.TransactionScope y EF.B Database.BeginTransaction ?

¿Podría alguien dar un pequeño ejemplo o simplemente explicar cuál usar cuando hay una diferencia clara?

PD: En mi proyecto, estoy usando EF6. Ya leí la documentación pero no ayudó mucho. También busqué los ejemplos pero están usando SqlConnection.BeginTransaction y ahora MS ha presentado esta nueva Database.BeginTransaction en EF6.