Ответ 1
DropCreateDatabaseIfModelChanges следует использовать только на ранней стадии разработки, а не на производственной машине. Если вы нажали на производственную машину и внесли изменения схемы, вы потеряете все свои данные.
Я только начал изучать .NET MVC, так что это может быть глупый вопрос, но я еще не нашел хорошего ответа.
Я следую подходу Code First, используя Entity Framework для создания моей базы данных для меня. Я включил следующее в свой метод Application_Start(), чтобы разрешить мне редактировать мою базу данных, внося изменения в мои объекты Model.
Database.SetInitializer<ContactManagerDB>(new DropCreateDatabaseIfModelChanges<ContactManagerDB>());
Мне просто интересно, что произойдет, если я подтолкнул это приложение к рабочей среде, а затем внес несколько изменений в мои модели, а затем обновил приложение? Будет ли это действительно снижать и воссоздавать базу данных в рабочей среде?
Какая наилучшая практика для продвижения изменений в производство? используя подход Code First?
DropCreateDatabaseIfModelChanges следует использовать только на ранней стадии разработки, а не на производственной машине. Если вы нажали на производственную машину и внесли изменения схемы, вы потеряете все свои данные.
Вы можете удалить таблицу EdmMetadata в рабочей среде. В этом случае EF не будет знать текущую схему для сравнения с новой, поэтому просто предположим, что вы знаете, что вы делаете, и она не коснется схемы базы данных.
Сначала код не имеет возможности обновлять вашу базу данных, сохраняя ваши данные целыми.