Использование ef6.exe

Note

В этой статье предполагается, что вы умеете использовать Code First Migrations в основных сценариях. Если нет, то прежде чем продолжить, прочитайте Code First Migrations.

При первой миграции кода можно обновить базу данных из Visual Studio, но вы также можете выполнить миграцию из командной строкиef6.exe. Эта программа заменяет migrate.exe.

Найдите ef6.exe

При установке Entity Framework с помощью NuGet ef6.exe находится в папке средств пакета NuGet. При использовании PackageReference пакет хранится в глобальной папке пакетов. Рассмотрим пример.

%USERPROFILE%\.nuget\packages\entityframework\6.5.2\tools\net45\any\ef6.exe

Замените 6.5.2 на версию Entity Framework, установленную в вашем проекте.

Просмотр параметров

ef6.exe database update --help

Переход на последнюю версию миграции

ef6.exe database update --assembly MyMvcApplication.dll --config ..\web.config

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

Перейти на конкретную миграцию

ef6.exe database update --assembly MyApp.exe --config MyApp.exe.config --target AddTitle

Используйте --target, чтобы применить все миграции до определенной миграции включительно.

Указание каталога проекта

ef6.exe database update --assembly MyApp.exe --config MyApp.exe.config --project-dir C:\MyApp

Используйте --project-dir, чтобы задать каталог проекта, который используется для разрешения зависимостей и относительных путей к файлам.

Укажите используемую конфигурацию миграции

ef6.exe database update --assembly MyAssembly.dll --migrations-config CustomConfig --config ..\web.config

Если сборка содержит несколько классов конфигурации миграции, используйте --migrations-config для указания того, какой из них следует использовать.

Укажите строку подключения

ef6.exe database update --assembly BlogDemo.dll --connection-string "Data Source=localhost;Initial Catalog=BlogDemo;Integrated Security=SSPI" --connection-provider System.Data.SqlClient

При указании строка подключения необходимо также указать имя поставщика.

Создание скрипта SQL

Используйте --script для записи SQL-скрипта миграции в стандартный вывод. Перенаправьте выходные данные для сохранения скрипта в файл:

ef6.exe database update --assembly MyApp.dll --script > migration.sql

Используйте --source и --target для управления диапазоном миграций, включенных в скрипт.

эквиваленты параметров migrate.exe

Следующая таблица сопоставляет migrate.exe аргументы со своими ef6.exe database update эквивалентами:

migrate.exe обновление базы данных ef6.exe
<assembly> --assembly
<configurationType> --migrations-config
<contextAssembly> Эквивалент отсутствует. Поместите его в тот же каталог, что и сборку, переданную в --assembly.
/targetMigration --target
/startupDirectory --project-dir
/scriptFile --script
/sourceMigration --source
/startupConfigurationFile --config
/startupDataDirectory --data-dir
/connectionStringName --connection-string-name
/connectionString --connection-string
/connectionProviderName --connection-provider
/force --force
/verbose --verbose
/? --help