Ответ 1
Это не обычный способ использования EF. EF обычно управляет соединением для вас. Однако:
Управление подключениями в службах объектов (Entity Framework)
Объектные службы предоставляют EntityConnection с помощью свойства Connection. Это позволяет вам управлять соединением и транзакциями или предоставлять собственный EntityConnection. Это полезно, если вы хотите открыть соединение в контексте краткосрочных объектов для повышения производительности или для явного управления транзакциями. То же соединение с провайдером, которое используется Entity Framework, может быть передано другим частям приложения.
При управлении соединениями применяются следующие соображения:
Контекст объекта откроет соединение, если он еще не открыт перед операцией. Если контекст объекта открывает соединение во время операции, он всегда будет закрывать соединение, когда операция будет завершена.
Если вы вручную откроете соединение, контекст объекта не закроет его. Вызов Close или Dispose закроет соединение.
Если контекст объекта создает соединение, соединение всегда будет удаляться при размещении контекста.
В долгосрочном контексте объекта вы должны убедиться, что контекст расположен, когда он больше не требуется.
Если вы предоставили открытый EntityConnection для контекста объекта, вы должны убедиться, что он удален.
Короче говоря, обычно вы не управляете соединением, но если вы хотите сделать это вручную по причинам, указанным выше, вы можете. Если вы решили открыть соединение вручную, вам нужно закрыть его вручную (EF не делает никаких предположений для вас, если вы решите пойти вручную).