sp_reset_connection происходит, когда sqlconnection возвращается в пул соединений, теперь это не должно быть проблемой.
но теперь вопрос в том, почему вы получаете тайм-ауты?это сервер sql, который не может справиться с количеством транзакций, или это пул соединений, который истощается, никогда не использовал Linq-to-sql, но убедитесь, что вы располагаете всем, что можете располагать, когда вы закончите с объектами ...
Редактировать: пул соединений существует по той причине, что его удаление приведет к снижению производительности, а удаление sp_reset_connection приведет к странным ошибкам, поскольку данные будут переданы следующему пользователю соединения ...
для уменьшения количества sp_reset_connection единственный способ, который вы можете сделать, это попытаться повторно использовать одно и то же соединение для максимально возможного количества запросов!