Bagikan melalui


Dukungan transaksi

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

Transaksi Lokal Eksplisit

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

Merupakan tanggung jawab Anda untuk menerapkan atau memutar kembali transaksi setelah eksekusi transaksi berhasil. Sambungan yang terkait dengan transaksi harus cocok dengan koneksi yang digunakan untuk membuat DataContext. Pengecualian dilemparkan jika koneksi yang berbeda digunakan.

Transaksi Eksplisit yang Dapat Didistribusikan

Anda dapat memanggil LINQ to SQL API (termasuk namun tidak terbatas pada SubmitChanges) dalam lingkup Transaction yang aktif. LINQ to SQL mendeteksi bahwa panggilan berada dalam lingkup transaksi dan tidak membuat transaksi baru. LINQ to 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 to SQL memeriksa untuk melihat apakah panggilan berada dalam cakupan Transaction atau apakah properti Transaction (IDbTransaction) diatur ke transaksi lokal yang dimulai pengguna. Jika tidak menemukan transaksi, LINQ to SQL memulai transaksi lokal (IDbTransaction) dan menggunakannya untuk menjalankan perintah SQL yang dihasilkan. Ketika semua perintah SQL telah berhasil diselesaikan, LINQ to SQL menerapkan dan mengembalikan transaksi lokal.

Lihat juga