Зависи как сте създали транзакцията.
Ако сте изпълнили вграден SQL, за да го стартирате (НАПР. BEGIN TRAN
), L2S няма да знае за транзакцията и ще завърти нова вложена в READ COMMITTED
.
Ако обаче сте използвали System.Transaction или имате зададена транзакция във вашия DataContext
, SubmitChanges ще участва в тази транзакция.
Можете да видите как тези транзакции започват и спират в Profiler, ако изберете TM: Begin Tran
и TM: Commit Tran
класове за събития.
Забележка:ADO.Net не издава BEGIN TRAN
нито издава SET TRANSACTION ISOLATION
в партидите това се прави на по-ниско ниво.
Ако винаистина искате да потвърдите поведението, създайте тригер на таблица, която вмъква текущото ниво на изолация в таблица за регистриране и го проверете.
Можете да вземете текущото си ниво на изолация, като изпълните:
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