2010-12-10 2 views
5

Мы создаем приложение на C#, которое использует Entity Framework с SQL Server 2008. Мы разрабатываем модель с помощью конструктора в Visual Studio и автоматически генерируем объекты из этого.Обработка миграции базы данных при использовании Entity Framework

Мы работаем над версией 1.0. Когда мы выпускаем 2.0, нам необходимо внести изменения в модель и базовую структуру базы данных. Наверное, нам нужны так называемые «миграции баз данных».

Традиционно у меня была таблица в базе данных, называемая «версия». Всякий раз, когда я создал новую версию своего программного обеспечения, я создал сценарии обновления базы данных, содержащие инструкции ALTER TABLE. Мое программное обеспечение проверило таблицу версий и выполнило сценарии обновления, необходимые для обновления базы данных до «версии программного обеспечения».

Есть ли лучший способ справиться с этим? Было бы неплохо, если бы мне не пришлось писать скрипты alter table-scripts и писать собственное программное обеспечение для обновления структуры базы данных.

ответ

0

Что я обычно делал, когда делал модель сначала, я указал мою модель на базу данных, которая была чисто для схемы (так что у меня была база данных myapp, где было мое приложение, но моя модель EF4 была выведена на база данных myapp_schema). Когда myapp_schema был обновлен, я использовал Db Source Tools, чтобы сгенерировать сценарии обновления и сделать схему базы данных myapp такой же, как myapp_schema.

0

Chech это сообщение. Речь идет о CTP4 EF4, но это то, что вам нужно.

http://blogs.msdn.com/b/efdesign/archive/2010/10/22/code-first-database-evolution-aka-migrations.aspx

Unforunately это еще не доступны. CTP5 был выпущен несколько дней назад, и насколько я знаю, это еще не включено.

+0

Прохладный. Но было бы еще круче, если бы решение работало с использованием подхода, основанного на модели, а не с первым кодом в будущем. ;-) – Martin 2010-12-10 13:45:21

Смежные вопросы