Сохранить содержимое базы данных при изменении модели

Использование подхода «сначала код», доступного в новой версии 4.1 RC.

Есть ли способ сохранить текущие данные, хранящиеся в базе данных, при изменении режима? База данных создается структурой сущностей, и обычно база данных удаляется и создается заново при изменении модели.

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


person Kasper Holdum    schedule 28.03.2011    source источник
comment
Возможно, это как-то связано с stackoverflow.com/questions/4485742/   -  person Simon Mourier    schedule 28.03.2011


Ответы (2)


Code first еще не поддерживает миграцию/эволюцию базы данных. Если вы хотите выполнить добавочную разработку БД, сначала используйте модель (EDMX) с шаблоном DbContext Generator T4 и генерация базы данных Entity Designer, который может создавать diff. скрипты от модели.

person Ladislav Mrnka    schedule 28.03.2011

От Скотт Гу:

Однако важно отметить, что опция автоматического создания базы данных — это всего лишь опция — она определенно не требуется. Если вы укажете строку подключения на существующую базу данных, то EF «код сначала» не будет пытаться создать ее автоматически. Опция автоматического воссоздания также не будет включена, если вы явно не хотите, чтобы EF делал это, поэтому вам не нужно беспокоиться о том, что она удаляет и воссоздает вашу базу данных, если вы явно не указали, что хотите, чтобы она это сделала.

person taylonr    schedule 28.03.2011
comment
Но это также означает, что мне придется вручную редактировать схему базы данных, чтобы снова соответствовать режиму, верно? - person Kasper Holdum; 28.03.2011
comment
Возможно... если честно, я не думал, что это так важно, но похоже, что сначала код не будет синхронизировать модель и БД без перезаписи БД - person taylonr; 29.03.2011