1

Можно ли отключить Entity Framework с помощью web.config? В приложении я разрабатываю мы имеем следующие средыКак отключить Entity Framework CF Миграции для среды

  • Разработка
  • Непрерывная интеграция
  • Интеграция Тестирование
  • Производство

Интеграция Тестирование и база производств управляются с помощью базы данных администратор, поэтому мы должны отправить им сценарий для внесения изменений в базу данных.

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

Из-за отсутствия информации я сомневаюсь, что то, что я прошу, необходимо или возможно, но что-то в затылке, что меня раздражает, поэтому я подумал, что попрошу экспертов.

ответ

2

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

+0

На самом деле, мы используем технику сценариев, которую вы упоминаете в своем блоге. http://cpratt.co/migrating-production-database-with-entity-framework-code-first/ –

2

Вы можете установить базу данных инициализатору в конфигурационном файле, как описано в нижней here, так что вы можете иметь обновления инициализатору в средах, которые вы хотите

+0

Я уже смотрел эту страницу. Является ли Iniatializer не только используемым, когда база данных не существует? IE сообщает EntityFramework, что создать новую базу данных и т. Д. –

+0

Зависит от инициализатора. Например, есть «DropCreateDatabaseWhenModelChanges», который, как следует из его названия, полностью воссоздает базу данных при изменении схемы. Обычно для работы с существующей базой данных вы просто указываете инициализатор как «null», который фактически полностью отключает инициализацию. –

+0

Единственная проблема с этим подходом заключается в том, что установка инициализатора выполняется в коде, поэтому его вид вообще или ничего, если вы не делаете что-то взломанное, как использовать директивы компилятора или какой-то оператор switch на основе настроек Web.config. –