Je n'ai pas testé, mais je me demande si vous rencontrez le même problème si vous utilisez un TransactionScope avec les options de IsolationLevel.ReadUncommitted. Vous auriez à encapsuler votre ensemble complet d'appels et cela devrait annuler la nécessité de cette déclaration. Je me rends compte que cette déclaration n'est pas votre préoccupation principale, mais en général.
Une autre chose que vous pouvez faire est de créer une classe DBConnectionScope (ou de tirer parti de la classe d'un fournisseur de confiance) et de réduire le nombre total de connexions ouvertes.