Иногда я удаляю свою базу данных разработки и запускаю свое приложение с первым кодом EF. Я получу ошибку:
Невозможно открыть базу данных "Система оценки", запрошенная логином. Ошибка входа в систему. Ошибка входа для пользователя "ОценкаAdmin".
Я думаю, это связано с тем, что DbContext
запускает логику инициализации DB "один раз в AppDomain, когда контекст используется в первый раз", поскольку this страница. Это означает, что мне нужно переработать пул приложений IIS, чтобы получить EF для воссоздания моей базы данных, если я его опустил.
Есть ли способ получить код инициализации DB для запуска каждый раз при попытке получить доступ к базе данных? Таким образом, он всегда проверяет, существует ли база данных, а если нет, создайте ее, а не пытайтесь ее открыть, даже если она использует тот же AppDomain, который ранее обращался к базе данных, которую я сейчас потерял?
Обратите внимание, что я хотел бы, чтобы эта проверка инициализации выполнялась для каждого запроса, поэтому даже сделать это в Application_Start
не достаточно часто; в идеале, я хотел бы иметь возможность загружать некоторые данные БД, удалять БД, затем загружать некоторые данные БД, и он воссоздает БД, даже если мне даже не придется перезагружать приложение (в основном мне просто нужно перезагрузить веб-страницу, загружает некоторые данные БД).