Содержит ли DbContext открытое соединение в течение своего жизненного цикла? - PullRequest
0 голосов
/ 13 ноября 2018

Вопрос довольно понятен.DbContext удерживает ли открытое соединение в течение своего жизненного цикла?Как насчет ядра EF?

1 Ответ

0 голосов
/ 13 ноября 2018

Как отметили другие, нет, это не так, если вы не открываете соединение вручную и не передаете его конструктору DbContext.

Конкретный подробный ответ можно найти здесь https://stackoverflow.com/a/45330219/191148.

И комментарий @ajcvickers в https://github.com/aspnet/EntityFrameworkCore/issues/7810 очищает его:

Если EF создает объект DbConnection, то EF гарантирует, что он утилизируется при удалении DbContext. С другой стороны, если некоторые другой код создает объект DbConnection и передает его в EF, затем другой кодекс также несет ответственность за подключение соответственно.

Аналогичные правила применяются к открытию и закрытию соединения. Если EF открывается соединение, тогда EF закроет соединение, когда это будет сделано с Это. Если ваш код открывает соединение, тогда ваш код должен закрыть подключение.

...