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.TransactionScope
Hala ç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.TransactionScope
bu 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 TransactionScope
yaklaşı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