Itu tergantung pada bagaimana Anda membuat transaksi.
Jika Anda menjalankan SQL sebaris untuk memulainya (Misalnya BEGIN TRAN
), L2S tidak akan mengetahui transaksi tersebut dan akan memunculkan transaksi baru di READ COMMITTED
.
Namun, jika Anda menggunakan System.Transaction, atau memiliki transaksi yang ditetapkan di DataContext
, SubmitChanges akan berpartisipasi dalam transaksi tersebut.
Anda dapat melihat transaksi ini dimulai dan dihentikan di Profiler jika Anda memilih TM: Begin Tran
dan TM: Commit Tran
kelas acara.
Catatan:ADO.Net tidak mengeluarkan BEGIN TRAN
juga tidak mengeluarkan SET TRANSACTION ISOLATION
dalam batch, ini dilakukan pada tingkat yang lebih rendah.
Jika Anda benar-benar ingin mengonfirmasi perilaku, buat pemicu pada tabel yang memasukkan tingkat isolasi saat ini ke dalam tabel logging dan periksa.
Anda dapat mengambil tingkat isolasi Anda saat ini dengan menjalankan:
SELECT CASE transaction_isolation_level
WHEN 0 THEN 'Unspecified'
WHEN 1 THEN 'Read Uncommitted'
WHEN 2 THEN 'Read Committed'
WHEN 3 THEN 'Repeatable Read'
WHEN 4 THEN 'Serializable'
WHEN 5 THEN 'Snapshot' END AS TRANSACTION_ISOLATION_LEVEL
FROM sys.dm_exec_sessions
where session_id = @@SPID