Q. Как долго мое соединение с базой данных остается открытым?
A. Соединение обычно остается открытым, пока вы не используете результаты запроса. Если вы ожидаете, что для обработки всех результатов потребуется время и вы не против кэширования результатов, примените ToList (TSource) к запросу. В распространенных сценариях, когда каждый объект обрабатывается только один раз, потоковая модель превосходит как DataReader, так и LINQ to SQL.
Точные детали использования соединения зависят от следующих факторов:
Состояние соединения, если DataContext создан с объектом соединения.
Настройки строки подключения (например, включение нескольких активных наборов результатов (MARS). Для получения дополнительной информации см. Несколько активных наборов результатов (MARS).
из FAQ по MSDN LINQ to SQL