Я написал несколько приложений, которые работают с инфраструктурой сущностей. Раньше я работал с предложением using. С этим пунктом я уверен, что соединение с базой данных закрыто должным образом.
Но в некоторых случаях мой объект контекста базы данных является полем класса. Его реализация находится в объявлении, и нет предложения использования.
Я только что обнаружил, что в этом случае метод Dispose() не вызывается. С использованием предложения Dispose() вызывается автоматически
Итак, мой вопрос: что произойдет, если Dispose() не вызывается в контексте базы данных? Деструктор вызывается, так что вы думаете, что база данных будет закрыта деструктором? Или я должен вызвать Dispose() вручную в деструкторе объекта-контейнера следующим образом:
class MyClass
{
public MyDbContext ctx = new MyDbContext();
....
~MyClass()
{
ctx.Dispose();
}
}
Спасибо