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

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

Спасибо.


person Lasantha Bandara    schedule 11.01.2012    source источник
comment
возможный дубликат EntityFramework Modify Database вместо воссоздания   -  person Eranga    schedule 11.01.2012


Ответы (1)


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

person Ladislav Mrnka    schedule 11.01.2012
comment
Большое спасибо за ответ, Ладислав. Не могли бы вы объяснить, что вы имели в виду под инкрементной разработкой базы данных? - person Lasantha Bandara; 13.01.2012
comment
Это то, что вы ищете. Способ вносить в вашу базу данных только изменения схемы вместо удаления всей базы данных и создания ее с нуля (это то, что делают инициализаторы). - person Ladislav Mrnka; 13.01.2012
comment
полный образец, если я использую файл mdf и мне нужно добавить новую таблицу? - person Kiquenet; 03.06.2017
comment
blogs.msdn.microsoft.com/b/adonet/archive/2011/11/29/ не найден - person Kiquenet; 03.06.2017