Entity Framework Core 1.0 с первым кодом миграции с использованием кода?
В предыдущих версиях Entity Framework миграция с первым кодом могла управляться программно с помощью класса DbMigrator (например, проверять и применять доступные миграции). Этот класс еще где-то существует или есть функциональная замена? Я нашел пост в ранней версии RC, в котором указывалось на замену, но в Core 1.0 он тоже отсутствует. Я могу контролировать свои миграции через CLI без проблем, но я думаю, что будет необходимо решение в коде для пользовательских сценариев инструментов.
1 ответ
Функциональную замену можно найти в нескольких местах, в первую очередь в API, который находится в пространстве имен Microsoft.EntityFrameworkCore.Migrations.
Некоторые места, чтобы посмотреть:
IHistoryRepository.GetAppliedMigrations()
IMigrator.Migrate(string targetMigration)
(что совпадает с вызовомDbContext.Database.Migrate()
)IMigrationAssembly
найти текущие миграции
За исключением IMigrator.Migrate
использование этих API обычно означает извлечение сервиса из внутреннего сервисного контейнера EF Core. Это делается по телефону .GetService<TService>()
на вашем dbcontext.
Пример:
var migrator = context.GetService<IMigrator>().Migrate();