Это действительно не имеет значения.Когда вы используете ADO.NET (который включает в себя Linq to SQL, NHibernate и любые другие ORM), библиотека использует пул соединений.Вы можете «закрыть» и «вновь открыть» логическое соединение дюжину раз, но одно и то же физическое соединение останется открытым все время.Так что не слишком заботьтесь о том, открыто или закрыто соединение.
Вместо этого вы должны пытаться ограничить количество запросов, которые вы должны выполнять на странице, потому что каждый обход происходитзначительные накладные расходы.Если вы отображаете одни и те же данные на каждой странице, кэшируйте результаты и устанавливайте зависимость кэша или срок действия, если они изменяются нечасто.Также попробуйте повторно использовать данные запроса, используя соответствующие объединения и / или энергичную загрузку (если вы используете ORM с отложенной загрузкой).
Даже если данные всегда будут совершенно разными при каждой загрузке страницывы получите более высокую производительность, если будете использовать одну хранимую процедуру, которая возвращает несколько наборов результатов, чем если бы каждый запрос выполнялся отдельно.
Итог: забудьте о стратегии подключения и начните беспокоиться о стратегии запроса.Более 3-5 запросов на страницу, и вы можете столкнуться с серьезными проблемами масштаба.