Die Antwort fand ich in der Dokumentation zu Entity Framework 6:
Mit der Einführung von EF6 empfiehlt Microsoft die Verwendung neuer API-Methoden: Database.BeginTransaction()
und Database.UseTransaction()
. Obwohl System.Transactions.TransactionScope
es immer noch sehr gut unterstützt wird, ist es für die meisten Benutzer von EF6 nicht mehr erforderlich .
Während Database.BeginTransaction()
es nur für datenbankbezogene Transaktionen verwendet wird System.Transactions.TransactionScope
, ermöglicht es darüber hinaus, dass 'einfacher C # -Code' auch transaktional ist.
Verwenden Sie daher, Database.BeginTransaction()
wo immer nur db-bezogene Operationen in einer Transaktion in EF6 ausgeführt werden, andernfalls das System.Transactions.TransactionScope
Mischen von db-Operationen und C # -Code in einer Transaktion.
Für diejenigen, die den TransactionScope
Ansatz immer noch bevorzugen , wird empfohlen, die Einschränkungen zu überprüfen, insbesondere in Cloud-Szenarien (Cloud-Szenarien unterstützen keine verteilten Transaktionen).
Weitere Informationen finden Sie hier