Saya menemukan jawabannya dalam dokumentasi Entity Framework 6:
Dengan diperkenalkannya EF6, Microsoft merekomendasikan untuk menggunakan metode API baru: Database.BeginTransaction()
dan Database.UseTransaction()
. Meskipun System.Transactions.TransactionScope
masih didukung dengan sangat baik, ini tidak lagi diperlukan untuk sebagian besar pengguna EF6.
Sementara Database.BeginTransaction()
hanya digunakan untuk transaksi operasi terkait database System.Transactions.TransactionScope
, selain itu, memungkinkan 'kode C # biasa' juga menjadi transaksional.
Oleh karena itu, gunakan di Database.BeginTransaction()
mana pun hanya melakukan operasi terkait db dalam transaksi di EF6 jika tidak, gunakanSystem.Transactions.TransactionScope
untuk mencampur operasi db dan kode C # bersama-sama dalam transaksi.
Bagi mereka yang masih lebih suka TransactionScope
pendekatan ini, disarankan agar mereka mengatasi batasannya, terutama dalam skenario cloud (skenario cloud tidak mendukung transaksi terdistribusi).
Informasi lebih lanjut dapat ditemukan di sini