Миграция или синхронизация базы данных Nuget CodeFirst EntityFramework

#asp.net-mvc #asp.net-mvc-3 #entity-framework-4.1

#asp.net-mvc #asp.net-mvc-3 #entity-framework-4.1

Вопрос:

Я пытался ASP.NET MVC 3 использует подход «Сначала код» с EntityFramework. Есть пара проблем, с которыми я сталкиваюсь.

  1. Как мне синхронизировать базу данных, если схема изменяется и / или я обновляю свою модель. Прямо сейчас я должен удалить и заново создать базу данных, чтобы потерять все мои данные. Есть ли доступный пакет, который я могу использовать для автоматического обновления схемы. В одной из демонстраций я видел, как Скотт Хансельман использовал «EntityFramework.Пакет «Миграция». Я предполагаю, что это не выпущенное использование. Есть альтернативы?

  2. MvcScaffolding воссоздает все представления / контроллеры. Есть ли способ сохранить стиль CSS в представлениях, если выполняется MvcScaffolding и представления создаются заново.

Заранее благодарю.

Комментарии:

1. Проверьте это — EntityFramework. Сопоставление схем

Ответ №1:

Существуют различные инструменты для генерации сценариев изменений для баз данных. Что касается самой entity Framework, то скоро появится EntityFramework.Миграции, которые также будут обрабатывать это.

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

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

Комментарии:

1. Спасибо за ваш ответ. Второй вопрос был больше о сохранении стиля CSS в представлениях. При каждом запуске Scaffold он перезаписывает и воссоздает представления, таким образом, любой CSS-класс, добавленный к представлениям, перезаписывается по умолчанию ASP.NET Тема MVC.

2. 1 за миграции. Слишком просто сказать «заполнить базу данных», но это подходит только для сред разработки.

Ответ №2:

Что касается вашей проблемы с потерей данных, рассмотрите возможность использования классов инициализатора базы данных. Вы можете заполнять данные при каждом изменении вашей модели. Я знаю, что это не идеально, но это все, что у нас есть прямо сейчас с EF 4.1. Вы можете использовать что-то вроде инструментария SQL от Red Gate для синхронизации сред. Как часть пакета, вы можете синхронизировать данные. Вы всегда можете создать резервные копии сценариев, созданных SQLToolbelt.

Ответ №3:

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

Подробнее об этом здесь