Если приложение находится в производстве, когда оно будет проверяться
если IfModelChanges и заново создать Db соответственно? только когда я остановлюсь
и повторно запустить сервер, или когда конкретная страница посещается первым
Пользователь
IIS периодически перезаписывает домены приложений. EF кэширует свою модель один раз для каждого домена приложения. Следовательно, когда ваше приложение перерабатывается и ваше приложение впервые использует контекст, EF запустит ваш инициализатор. Таким образом, в этот момент, если модель отличается от базы данных, ваш SchoolInitializer
будет выполнен.
приведет к удалению и повторному созданию базы данных, что приведет к
уже там нужно удалить?
Да. Только данные, вставленные в ваш метод Seed
, будут там после восстановления базы данных.
если я удалю свойство из набора сущностей в моих новых изменениях, что будет
случится с его данными?
если я добавлю ненулевое свойство в существующий набор сущностей, что будет
произойдет, когда база данных будет удалена и воссоздана?
EF обнаруживает, что модель была изменена, и база данных будет удалена и создана заново.
Мой совет: инициализаторы базы данных предпочтительнее в среде разработки. Для производства будет лучше создать базу данных, используя скрипт. Это будет полезно в управлении изменениями. Вы также можете посмотреть на функцию миграции баз данных в EF.