Я не тестировал, но хотел бы спросить, есть ли у вас такая же проблема, если вы используете TransactionScope с параметрами IsolationLevel.ReadUncommitted. Вы должны инкапсулировать свой полный набор вызовов, и это должно свести на нет необходимость в этом утверждении. Я понимаю, что это утверждение не является вашей основной заботой, но в целом.
Еще одна вещь, которую вы можете сделать, - это создать класс DBConnectionScope (или использовать класс доверенного поставщика) и сократить общее количество открытых соединений.