Ho trovato la risposta nella documentazione di Entity Framework 6:
Con l'introduzione di EF6, Microsoft consiglia di utilizzare nuovi metodi API: Database.BeginTransaction()e Database.UseTransaction(). Sebbene System.Transactions.TransactionScopesia ancora molto ben supportato, non è più necessario per la maggior parte degli utenti di EF6.
Sebbene Database.BeginTransaction()sia utilizzato solo per le transazioni di operazioni relative al database System.Transactions.TransactionScope, oltre a ciò, rende possibile che anche il "codice C # normale" sia transazionale.
Quindi, utilizzare Database.BeginTransaction()dove mai si eseguono solo operazioni relative a db in una transazione in EF6, altrimenti utilizzare System.Transactions.TransactionScopeper combinare operazioni db e codice C # insieme in una transazione.
Per coloro che preferiscono ancora l' TransactionScopeapproccio, si consiglia di verificarne i limiti, soprattutto negli scenari cloud (gli scenari cloud non supportano le transazioni distribuite).
Ulteriori informazioni possono essere trovate qui