Между двумя методами работы с транзакциями есть одно незаметное, очень существенное отличие.

SqlConnection.BeginTransaction создает транзакцию с уровнем изоляции по умолчанию – обычно это READ COMMITTED или READ COMMITTED SNAPSHOT.

Попытка выполнить команду в TransactionScope так же приводит к созданию транзакции SQL, но уже с уровнем изоляции SERIALIZABLE.

Внезапная разница между уровнями изоляции обеспечивает неповторимые ощущения при разрешении дедлоков :) Будьте бдительны!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>