Özel Geçiş geçmişi tablosu

Varsayılan olarak EF Core, veritabanına hangi geçişlerin uygulandığını izlemek için bunları adlı bir tabloya __EFMigrationsHistory kaydeder. Çeşitli nedenlerle, bu tabloyu gereksinimlerinize daha iyi uyacak şekilde özelleştirmek istiyor olabilir.

Önemli

Geçişleri uygulamaya başladıktan sonra Geçiş geçmişi tablosu özelleştirilebilirse veritabanındaki mevcut tabloyu güncelleştirmek sizin sorumluluğundadır.

Şema ve tablo adı

şema ve tablo adını ,'daki (veya ASP.NET Core) MigrationsHistoryTable()OnConfiguring()ConfigureServices() yöntemiyle değiştirebilirsiniz. Aşağıdaki örnekte, SQL Server EF Core sağlayıcısını kullanırsınız.

protected override void OnConfiguring(DbContextOptionsBuilder options)
    => options.UseSqlServer(
        _connectionString,
        x => x.MigrationsHistoryTable("__MyMigrationsHistory", "mySchema"));

Diğer değişiklikler

Tablonun ek yönlerini yapılandırmak için sağlayıcıya özgü hizmeti geçersiz kılın ve IHistoryRepository değiştirin. MigrationId sütun adını, aşağıdaki örnekteki Id olarak değiştirme SQL Server.

protected override void OnConfiguring(DbContextOptionsBuilder options)
    => options
        .UseSqlServer(_connectionString)
        .ReplaceService<IHistoryRepository, MyHistoryRepository>();

Uyarı

SqlServerHistoryRepository bir iç ad alanı içindedir ve gelecek sürümlerde değişebilir.

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");
    }
}