Cela dépend de la façon dont vous avez créé la transaction.
Si vous avez exécuté SQL en ligne pour le commencer (par exemple, BEGIN TRAN
), L2S ne sera pas au courant de la transaction et en lancera une nouvelle imbriquée dans READ COMMITTED
.
Cependant, si vous avez utilisé System.Transaction ou si vous avez défini une transaction sur votre DataContext
, SubmitChanges participera à cette transaction.
Vous pouvez voir ces transactions démarrer et s'arrêter dans Profiler si vous choisissez le TM: Begin Tran
et TM: Commit Tran
cours événementiels.
Remarque :ADO.Net n'émet pas BEGIN TRAN
il n'émet pas non plus SET TRANSACTION ISOLATION
par lots, cela se fait à un niveau inférieur.
Si vous vraiment souhaitez confirmer le comportement, créez un déclencheur sur une table qui insère le niveau d'isolement actuel dans une table de journalisation et vérifiez-le.
Vous pouvez récupérer votre niveau d'isolement actuel en exécutant :
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