Eu encontrei a resposta na documentação do Entity Framework 6:
Com a introdução do EF6, a Microsoft recomenda o uso de novos métodos de API: Database.BeginTransaction()e Database.UseTransaction(). Embora System.Transactions.TransactionScopeainda seja muito bem suportado, não é mais necessário para a maioria dos usuários do EF6.
Enquanto Database.BeginTransaction()é usado apenas para transações de operações relacionadas ao banco de dados System.Transactions.TransactionScope, além disso, torna possível que o 'código C # simples' também seja transacional.
Portanto, use Database.BeginTransaction()onde quer que esteja fazendo apenas operações relacionadas ao banco de dados em uma transação em EF6, caso contrário, use System.Transactions.TransactionScopepara misturar operações de banco de dados e código C # em uma transação.
Para quem ainda prefere a TransactionScopeabordagem, é recomendável verificar suas limitações, principalmente em cenários de nuvem (os cenários de nuvem não suportam transações distribuídas).
Mais informações podem ser encontradas aqui