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