Вопрос довольно ясен. Поддерживает ли DbContext
открытое соединение в течение своего жизненного цикла? Как насчет ядра EF?
Удерживает ли DbContext открытое соединение в течение своего жизненного цикла?
Ответы (1)
Как отмечают другие, нет, это не так, если вы вручную не откроете соединение и не передадите его конструктору DbContext.
Конкретный подробный ответ можно найти здесь https://stackoverflow.com/a/45330219/191148.
И комментарий @ajcvickers в https://github.com/aspnet/EntityFrameworkCore/issues/7810 очищает его:
Если EF создает объект DbConnection, то EF гарантирует его удаление при удалении DbContext. С другой стороны, если какой-то другой код создает объект DbConnection и передает его в EF, то другой код также несет ответственность за правильное удаление соединения.
Аналогичные правила применяются к открытию и закрытию соединения. Если EF открывает соединение, то EF закроет соединение, когда с ним будет покончено. Если ваш код открывает соединение, ваш код должен закрыть соединение.
DbContext
, и строка подключения указывает, используется ли она. См.:ConnectionString
(далееpooling
) - person Tim Schmelter   schedule 13.11.2018SaveChangesAsync
будет хранить все ожидающие изменения. в одной транзакции. Вы можете создать отдельный DbContext для каждого сценария/прецедента/ограниченного контекста DDD, содержащий сущности, необходимые для этого сценария. Почему вам нужно использовать несколько DbContext? - person Panagiotis Kanavos   schedule 12.08.2020