Det afhænger af, hvordan du har oprettet transaktionen.
Hvis du udførte inline SQL for at starte den (f.eks. BEGIN TRAN
), vil L2S ikke være opmærksom på transaktionen og vil oprette en ny indlejret i READ COMMITTED
.
Men hvis du brugte System.Transaction eller har en transaktion indstillet på din DataContext
, vil SubmitChanges deltage i den transaktion.
Du kan se disse transaktioner starte og stoppe i Profiler, hvis du vælger TM: Begin Tran
og TM: Commit Tran
event klasser.
Bemærk:ADO.Net udsteder ikke BEGIN TRAN
den udsteder heller ikke SET TRANSACTION ISOLATION
i partier sker dette på et lavere niveau.
Hvis du virkelig ønsker at bekræfte adfærden, opret en trigger på en tabel, der indsætter det aktuelle isolationsniveau i en logningstabel og kontroller det.
Du kan hente dit nuværende isolationsniveau ved at køre:
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