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();
Другие вопросы по тегам