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.TransactionScope
db操作とC#コードを混在させるために使用します。
それでもこのTransactionScope
アプローチを好む人は、特にクラウドシナリオ(クラウドシナリオは分散トランザクションをサポートしていません)で、その制限を確認することをお勧めします。
詳細については、こちらをご覧ください