2012-01-11 2 views
1

Я использую класс инициализатора базы данных DropCreateDatabaseIfModelChanges в Entity-framework-4.2. Проблема заключается в том, что создается новая база данных, и старые данные теряются. Я использовал метод семени этого класса для ввода некоторых новых значений. Но таким образом я не могу сохранить свои старые данные. Кто-нибудь знает способ сбросить и создать БД при изменении модели, не теряя при этом существующих данных?можно ли использовать DropCreateDatabaseIfModelChanges без потери данных?

спасибо.

+0

Возможный дубликат [EntityFramework Изменение базы данных вместо повторного создания] (http://stackoverflow.com/questions/8760727/entityframework-modify-database-instead-of-recreate) – Eranga

ответ

1

Невозможно со встроенными инициализаторами базы данных и написанием пользовательских данных, сохраняющих инициализатор, было бы очень сложной задачей. В качестве альтернативы вы можете использовать Code First Migrations вместо инициализаторов. Миграции позволяют инкрементно развивать вашу базу данных.

+0

Большое спасибо за ваш ответ Ladislav. Не могли бы вы объяснить, что вы подразумеваете под ** «постепенным развитием базы данных» ** –

+0

Это то, что вы ищете. Способ изменения только схемы в вашу базу данных вместо удаления всей базы данных и создания ее с нуля (это то, что делают инициализаторы). –

+0

полный образец, если я использую файл mdf, и мне нужно добавить новую таблицу? – Kiquenet