Het hangt af van hoe u de transactie hebt gemaakt.
Als u inline SQL hebt uitgevoerd om het te starten (bijv. BEGIN TRAN
), zal L2S niet op de hoogte zijn van de transactie en zal een nieuwe geneste genereren in READ COMMITTED
.
Als u echter System.Transaction heeft gebruikt of een transactie heeft ingesteld op uw DataContext
, SubmitChanges zal deelnemen aan die transactie.
U kunt deze transacties zien starten en stoppen in Profiler als u kiest voor de TM: Begin Tran
en TM: Commit Tran
evenement klassen.
Opmerking:ADO.Net geeft BEGIN TRAN
niet uit noch geeft het SET TRANSACTION ISOLATION
in batches gebeurt dit op een lager niveau.
Als je echt het gedrag wilt bevestigen, maak een trigger op een tabel die het huidige isolatieniveau in een logtabel invoegt en controleer deze.
U kunt uw huidige isolatieniveau ophalen door het volgende uit te voeren:
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