я же должен вызвать Dispose для контекста или это сделает DI?
services.AddDbContextFactory<MssqlDbContext>(options => options.UseSqlServer(configuration.GetConnectionString("LibraryDb")));
Если я вручную вызываю метод Dispose, то получаю exception, который говорит, что за уничтожение контекста должен отвечать DI
System.ObjectDisposedException: Cannot access a disposed context instance. A common cause of this error is disposing a context instance that was resolved from dependency injection and then later trying to use the same context instance elsewhere in your application. This may occur if you are calling 'Dispose' on the context instance, or wrapping it in a using statement. If you are using dependency injection, you should let the dependency injection container take care of disposing context instances. Object name: 'MssqlDbContext'.
А нащо вам визвати Dispose()?
Ну контекcт то я создаю вручную, вызываю у фабрики метод CreateContext(), вот и подумал что нужно вызвать Dispose()
Якщо об'єкти знаходяться в керуючі, пам'яті я думаю Dispose () визивати не потрібно, якщо звісно вам не потрібно супер швидкої очистки пам'яті
Ну правильно ты его вызвал то без проблем а кто то еще к контексту обратился и на нем выскочило
будет ексепшен(
di диспозит сам, но обычные сервисы у которых есть IDisposable, а вот по фабрике точно не знаю, ну скорее всего тоже
Обсуждают сегодня