Использование DropCreateDatabaseIfModelChanges в производственной среде - PullRequest
15 голосов
/ 11 мая 2011

Я только начал изучать .NET MVC, так что это может быть глупый вопрос, но я пока не нашел хорошего ответа.

Я следую подходу Code First, используя Entity Framework длясоздать мою базу данных для меняЯ включил в метод Application_Start () следующее, чтобы позволить мне редактировать базу данных, внося изменения в объекты Model.

Database.SetInitializer<ContactManagerDB>(new DropCreateDatabaseIfModelChanges<ContactManagerDB>());

Мне просто было интересно, что произойдет, если я нажму это приложениев производственную среду, а затем сделал несколько изменений в моих моделях, а затем обновил приложение?Действительно ли это приведет к удалению и воссозданию базы данных в производственной среде?

Какова наилучшая практика для внесения изменений в производственную среду.используя подход Code First?

Ответы [ 3 ]

18 голосов
/ 22 июля 2011

DropCreateDatabaseIfModelChanges следует использовать только на ранних этапах разработки, но не на рабочей машине. Если вы перешли на рабочий компьютер и внесли изменения в схему, вы потеряете все свои данные.

1 голос
/ 16 мая 2011

Вы можете удалить таблицу EdmMetadata в своей производственной среде.В этом случае EF не будет знать текущую схему для сравнения с новой, поэтому он будет просто предполагать, что вы знаете, что делаете, и не будет касаться схемы базы данных.

0 голосов
/ 12 апреля 2013

У кода сначала нет возможности обновить базу данных, сохраняя ваши данные в целости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...