如何在 EF Core 中使用自定义 HistoryRepository?

How to use custom HistoryRepository in EF Core?

我想知道在数据库迁移期间注入 IHistoryRepository 自定义实现的最佳方法是什么。

这个会吗

OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
     optionsBuilder.ReplaceService<IHistoryRepository, MyRepository>();
}

使用 ASP.NET Core 还是我应该做其他事情?

收到了 Brice Lambson 的回邮件

如果您只想更改名称(或模式),有一种简单的方法可以做到:

optionsBuilder.UseSqlServer(
    "MyConnectionString",
    x => x.MigrationsHistoryTable("MyHistoryTable", "mySchema"));

要替换 EF Core 1.1 中的 IHistoryRepository 服务,这里有一些代码。

optionsBuilder
    .UseSqlServer("MyConnectionString")
    .ReplaceService<SqlServerHistoryRepository, MyHistoryRepository>();

您替换提供者特定类型的原因是因为 IHistoryRepository 是使用 DatabaseProviderServices 和朋友为每个提供者解析的。有关相关代码行,请参阅 SqlServerDatabaseProviderServices。