Cakupan Transaksi
TransactionScope adalah kelas dalam System.Transactions, yang merupakan kelas yang disertakan dengan kerangka kerja .NET. Jika TransactionScope dirilis tanpa memanggil metode Complete (TransactionScope mengimplementasikan antarmuka IDisposible, menggunakan blok direkomendasikan), maka TransactionScope akan menganggap operasi gagal dan akan mengembalikan eksekusi. TransactionScope adalah API berguna yang mengelola transaksi di sekitar ("sekitar" berarti bahwa database yang mendukung TransactionScope dapat mengelola transaksi secara otomatis), dan sebagian besar database arus utama mendukung API ini, termasuk MSSQL Microsoft sendiri, tentu saja. Jika Anda menggunakan database atau beberapa sistem terkait transaksi yang tidak mendukung TransactionScope, Anda masih dapat menggunakan pencegat, tetapi Anda harus memodifikasi kode Anda untuk menggunakan API yang sesuai yang mendukung transaksi (misalnya, menggunakan API BeginTransaction untuk mendapatkan implementasi IDbTransactions oleh penyedia database).
Di atas adalah pengecualian khusus yang sengaja saya lemparkan untuk melihat apakah itu dapat diputar kembali secara normal, dan gambar di bawah ini adalah eksekusi normal, tanpa kecuali.
Memanggil metode TransactionScope Complete menunjukkan bahwa transaksi berhasil dieksekusi. Tentu saja, jika transaksi selalu dieksekusi, maka transaksi tersebut tidak diperlukan. Alasan mengapa ada transaksi adalah untuk memecahkan masalah kegagalan dalam beberapa operasi, dan jika terjadi kegagalan, itu akan digulung kembali. Karena . TransactionScope .NET, tidak ada panggilan rollback eksplisit, dan padanan terdekat adalah menggunakan metode Dispose. Jika TransactionScope dirilis sebelum metode Complete dipanggil, maka TransactionScope melakukan rollback. Oleh karena itu, panggilan Dispose perlu ditambahkan ke wajah pencegat transaksi untuk melakukan pengembalian.
Terakhir, lampirkan kodenya!
Terlampir adalah kode sumber:Wisatawan, jika Anda ingin melihat konten tersembunyi dari posting ini, silakan Jawab
|