Záleží na tom, jak jste transakci vytvořili.
Pokud jste pro zahájení spustili inline SQL (např. BEGIN TRAN
), L2S nebude vědět o transakci a vytvoří novou vnořenou v READ COMMITTED
.
Pokud jste však použili System.Transaction nebo máte transakci nastavenou v DataContext
, SubmitChanges se této transakce zúčastní.
Pokud zvolíte TM: Begin Tran
, můžete tyto transakce spouštět a zastavovat v Profileru a TM: Commit Tran
třídy událostí.
Poznámka:ADO.Net nevydává BEGIN TRAN
ani nevydává SET TRANSACTION ISOLATION
v dávkách se to provádí na nižší úrovni.
Pokud opravdu chcete potvrdit chování, vytvořte na tabulce spouštěč, který vloží aktuální úroveň izolace do tabulky protokolování a zkontrolujte ji.
Aktuální úroveň izolace můžete získat spuštěním:
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