Entity Framework 6'nın belgelerinde cevabı buldum:
EF6'nın tanıtımıyla Microsoft, yeni API yöntemlerinin kullanılmasını önerir: Database.BeginTransaction()ve Database.UseTransaction(). System.Transactions.TransactionScopeHala çok iyi desteklenmesine rağmen , çoğu EF6 kullanıcısı için artık gerekli değildir.
İken Database.BeginTransaction()tek veritabanı ile ilgili işlemler işlem için kullanılır, System.Transactions.TransactionScopebu ek olarak, bu düz C # kod 'için olası ayrıca işlem olması mümkün kılar.
Bu nedenle, Database.BeginTransaction()EF6'daki bir işlemde yalnızca db ile ilgili işlemleri yaparken kullanın, aksi takdirdeSystem.Transactions.TransactionScope , db işlemlerini ve C # kodunu karıştırmak için .
Hala TransactionScopeyaklaşımı tercih edenler için , özellikle bulut senaryolarında (bulut senaryoları dağıtılmış işlemleri desteklemez) sınırlamalarını kontrol etmeleri önerilir.
Daha fazla bilgi burada bulunabilir