如何在.NET CORE中更改默认的ASP.NET身份表名称?

44

我已经开始使用.NET Core,在MVC 5中,我将默认表名更改为例如:AspNETUsers到Users以这种方式,并且它完美地运行:

IdentityModels类中,我添加了:

protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<IdentityUser>().ToTable("Users").Property(p => p.Id).HasColumnName("UserId");
        modelBuilder.Entity<ApplicationUser>().ToTable("Users").Property(p => p.Id).HasColumnName("UserId");
        modelBuilder.Entity<IdentityUserRole>().ToTable("UserRoles");
        modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogins");
        modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaims");
        modelBuilder.Entity<IdentityRole>().ToTable("Roles");
    }

但它在ASP.NET CORE(MVC 6)中不起作用。 有人可以帮帮我吗? 非常感谢。


2
请勿将.NET Core视作ASP.NET Core的同义词!.NET Core是一个运行时,就像.NET 4.x运行时一样。而ASP.NET Core是个框架/网络堆栈,可以在.NET Core和.NET >=4.5.1上运行。 - Tseng
@Tseng,我正在学习Core,确实ASP.NET和Core之间有很多不同。 - Archil Labadze
11个回答

0
在 Entity Framework Core 6 版本中,这个功能很好用:
protected override void OnModelCreating(ModelBuilder builder)
{
    base.OnModelCreating(builder);

    foreach (var entity in builder.Model.GetEntityTypes())
    {
        // Replace table names
        entity.SetTableName(entity.GetTableName().ToSnakeCase());
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接