4

Переходы EF кажутся классными, но происходит слишком много «магии» и очень мало объяснений относительно того, что он на самом деле делает. Все, что я хочу сделать, это установить точки пересечения и получить сценарии DDL - либо сценарий «diff» от одного перехода к другому, либо весь сценарий создания DDL.Использование миграции Entity Framework 4.3 без зависимости от фактической базы данных

Проблема заключается в том, что все команды миграции кажутся зависимыми от фактической базы данных, присутствующей для выполнения множества вещей, которые мне не интересны. Есть ли способ обойти все это и просто работать с миграциями для генерации скриптов?

+0

Я полностью согласен с вами в отношении дизайна Migrations (over). Вся концепция работает намного лучше в командной среде, если я могу делать каждый шаг, кроме Update-Database без базы данных. –

ответ

0

Это было discussed yesterday. Команды миграции зависят от вашей рабочей базы данных, потому что они взаимодействуют с таблицей __MigrationHistory, чтобы получить фактическое состояние и правильно вычислить, какие изменения необходимо выполнить.

Если вам просто нужно создать скрипты, которые вы можете сделать это с помощью Update-Database с дополнительными параметрами:

Создать сценарий для всей базы данных:

Update-Database -Script -SourceMigration:$InitialDatabase 

Создать скрипт для обновления миграции А миграции B:

Update-Database -Script -SourceMigration:"A" -TargetMigration:"B" 
+0

К сожалению, я не могу запустить второй пример, потому что не удалось выполнить вторую миграцию, заявив, что у меня есть явные миграции. Очень расстраивает, действительно, должен быть вариант отказа от «магии», которую они пытаются выполнить. –

+0

Я не говорил, что он будет работать без базы данных. База данных является основным требованием для текущей версии миграции. У вас никогда не может быть более одной миграции, которая не была применена к вашей базе данных. Если вам это не нравится, вы должны лучше обращаться с обновлениями баз данных - например, с проектом VS Database. –

+0

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