Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
По умолчанию EF Core отслеживает, какие миграции были применены к базе данных, записывая их в таблицу с именем __EFMigrationsHistory. По различным причинам вы можете настроить эту таблицу в соответствии с вашими потребностями.
Это важно
Если вы настраиваете таблицу журнала миграций после применения миграций, вы несете ответственность за обновление существующей таблицы в базе данных.
Имя схемы и таблицы
Можно изменить имя схемы и таблицы с помощью MigrationsHistoryTable() метода OnConfiguring() (или ConfigureServices() в ASP.NET Core). Ниже приведен пример использования поставщика SQL Server EF Core.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlServer(
_connectionString,
x => x.MigrationsHistoryTable("__MyMigrationsHistory", "mySchema"));
Другие изменения
Чтобы настроить дополнительные аспекты таблицы, переопределите службу и замените её на версию для конкретного IHistoryRepository поставщика. Ниже приведен пример изменения имени столбца MigrationId на id on SQL Server.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options
.UseSqlServer(_connectionString)
.ReplaceService<IHistoryRepository, MyHistoryRepository>();
Предупреждение
SqlServerHistoryRepository находится внутри внутреннего пространства имен и может измениться в будущих версиях.
internal class MyHistoryRepository : SqlServerHistoryRepository
{
public MyHistoryRepository(HistoryRepositoryDependencies dependencies)
: base(dependencies)
{
}
protected override void ConfigureTable(EntityTypeBuilder<HistoryRow> history)
{
base.ConfigureTable(history);
history.Property(h => h.MigrationId).HasColumnName("Id");
}
}