Bagikan melalui


Dukungan Transaksi

LINQ ke SQL mendukung tiga model transaksi yang berbeda. Berikut ini mencantumkan model ini dalam urutan pemeriksaan yang dilakukan.

Transaksi Lokal Eksplisit

Ketika SubmitChanges dipanggil, jika properti Transaction diatur ke transaksi (IDbTransaction), panggilan SubmitChanges dijalankan dalam konteks transaksi yang sama.

Anda bertanggung jawab untuk melakukan atau memutar kembali transaksi setelah keberhasilan eksekusi transaksi. Koneksi yang sesuai dengan transaksi harus cocok dengan koneksi yang digunakan untuk membuat DataContext. Pengecualian dilemparkan jika koneksi yang berbeda digunakan.

Transaksi Yang Dapat Didistribusikan Eksplisit

Anda dapat memanggil API LINQ to SQL (termasuk namun tidak terbatas pada SubmitChanges) dalam cakupan yang sedang aktif Transaction. LINQ ke SQL mendeteksi bahwa panggilan berada dalam cakupan transaksi dan tidak membuat transaksi baru. LINQ ke SQL juga menghindari penutupan koneksi dalam kasus ini. Anda dapat melakukan kueri dan SubmitChanges eksekusi dalam konteks transaksi tersebut.

Transaksi Implisit

Saat Anda memanggil SubmitChanges, LINQ ke SQL memeriksa apakah panggilan berada dalam cakupan Transaction atau apakah properti Transaction (IDbTransaction) diatur ke transaksi lokal yang dimulai oleh pengguna. Jika tidak menemukan transaksi, LINQ ke SQL memulai transaksi lokal (IDbTransaction) dan menggunakannya untuk menjalankan perintah SQL yang dihasilkan. Ketika semua perintah SQL telah berhasil diselesaikan, LINQ ke SQL menyelesaikan transaksi lokal dan kembali.

Lihat juga