Я полагал, что при использовании LINQ невозможно получить утечки из sql-соединения, но трассировка числа NumberOfReclaimedConnections показывает большое число, и при высокой нагрузке мы иногда получаем исключения, такие как «Истекло время ожидания. пул. Это могло произойти из-за того, что все пулы подключений использовались и был достигнут максимальный размер пула ".
Мы не используем Dispose для данных, так как мы использовали отложенную загрузку. Несколько статей и пост в блоге говорят мне, что это не должно быть проблемой.
И все же иногда мы получаем эти исключения. Но не может быть так, чтобы каждый запрос linq, который мы сохраняли, открывал соединение, тогда у нас было бы намного больше исключений.
Отредактировано
Приложение является службой WCF.
Если вы посмотрите документацию Linq и большинство статей, они утверждают, что Dispose не нужен для освобождения соединений. Они утверждают, что DataCOntext сохраняет соединение открытым только в течение короткого времени, в котором оно необходимо.