Entity framework core 实体框架核心-更改“的模式”__EFMigrationsHistory“;桌子

Entity framework core 实体框架核心-更改“的模式”__EFMigrationsHistory“;桌子,entity-framework-core,Entity Framework Core,是否可以更改EntityFramework核心中\uu EFMigrationsHistory表的架构?查看源代码()。您可以在DbContext构造函数中配置自定义迁移表和架构名称 public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { var relationalOptions = RelationalOptionsExtension.Ext

是否可以更改EntityFramework核心中
\uu EFMigrationsHistory
表的架构?

查看源代码()。您可以在
DbContext构造函数中配置自定义迁移表和架构名称

public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
{
    var relationalOptions = RelationalOptionsExtension.Extract(options);
    relationalOptions.MigrationsHistoryTableName = "bar";
    relationalOptions.MigrationsHistoryTableSchema = "foo";
}

在调用
UseSqlServer
时执行此操作

optionsBuilder
    .UseSqlServer(
        "...",
        x => x.MigrationsHistoryTable(
            HistoryRepository.DefaultTableName,
            "mySchema"));

非常接近。我在回答中更进一步了。看起来MS将其更改为:WithMigrationHistoryTableName(“bar”)和WithMigrationHistoryTableSchema(“foo”),以防以后有人搜索它。@JasonRoner根据实现,这只是使用该属性集创建了一个新的RelationalOptions。我们如何将这个新对象吸收回我们的配置中?(文档中还指出,直接调用此函数是不常见的,我们被引用回DbContextOptionsBuilder,但没有关于如何实现相同效果的指导)很好。更简单。谢谢。@bricelam,然后你能更改迁移历史记录表的列名吗?@AlexBello回答。@bricelam在你回答之前,我专门创建了关于列名的内容。我不确定您是否也要在那里回答,以防其他专门搜索重命名列的人可以轻松找到它。
optionsBuilder
    .UseSqlServer(
        "...",
        x => x.MigrationsHistoryTable(
            HistoryRepository.DefaultTableName,
            "mySchema"));