Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Standardmäßig verfolgt EF Core, welche Migrationen auf die Datenbank angewendet wurden, indem sie in einer Tabelle mit dem Namen __EFMigrationsHistoryaufgezeichnet werden. Aus verschiedenen Gründen können Sie diese Tabelle an Ihre Anforderungen anpassen.
Von Bedeutung
Wenn Sie die Migrationsverlaufstabelle nach dem Anwenden von Migrationen anpassen, sind Sie für die Aktualisierung der vorhandenen Tabelle in der Datenbank verantwortlich.
Schema- und Tabellenname
Sie können den Schema- und Tabellennamen mithilfe der MigrationsHistoryTable() Methode in OnConfiguring() (oder ConfigureServices() auf ASP.NET Core) ändern. Hier ist ein Beispiel für die Verwendung des SQL Server EF Core-Anbieters.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlServer(
_connectionString,
x => x.MigrationsHistoryTable("__MyMigrationsHistory", "mySchema"));
Andere Änderungen
Um zusätzliche Aspekte der Tabelle zu konfigurieren, überschreiben und ersetzen Sie den anbieterspezifischen IHistoryRepository Dienst. Nachfolgend sehen Sie ein Beispiel zum Ändern des Spaltennamens "MigrationId" in "ID " auf SQL Server.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options
.UseSqlServer(_connectionString)
.ReplaceService<IHistoryRepository, MyHistoryRepository>();
Warnung
SqlServerHistoryRepository befindet sich in einem internen Namespace und kann sich in zukünftigen Versionen ändern.
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");
}
}