Entity Framework6のドキュメントで答えを見つけました。
EF6の導入に伴い、Microsoftは新しいAPIメソッドを使用することをお勧めします:Database.BeginTransaction()およびDatabase.UseTransaction()。が、System.Transactions.TransactionScopeまだ非常によくサポートされ、それはもはやありません必要なEF6のほとんどのユーザーのために。
一方でDatabase.BeginTransaction()唯一のデータベース関連業務トランザクションのために使用され、System.Transactions.TransactionScopeそのほかに、それはプレーンなC#コード」の可能性も取引することができます。
したがって、Database.BeginTransaction()EF6のトランザクションでdb関連の操作のみを実行する場合は常に使用します。それ以外の場合は、トランザクションでSystem.Transactions.TransactionScopedb操作とC#コードを混在させるために使用します。
それでもこのTransactionScopeアプローチを好む人は、特にクラウドシナリオ(クラウドシナリオは分散トランザクションをサポートしていません)で、その制限を確認することをお勧めします。
詳細については、こちらをご覧ください