我从 .NET Core 开始,在 MVC 5 中我更改了默认表名,例如:AspNETUsers 以这种方式更改为用户,并且效果很好:
在 身份模型 第一课:
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) 中不起作用。谁能帮我?
非常感谢。
最佳答案
仅出于文档目的,对于那些在 future 几年来这篇文章的人(比如我 XD),问题的答案:
如何更改 .NET CORE 中的默认 ASP.NET Identity 表名称?
可以这样解决
//Repeat with each table
builder.Entity<ApplicationUser>(entity =>
{
entity.ToTable(name:"Users");
entity.Property(e => e.Id).HasColumnName("UserId");
});
或者可以这样解决
modelBuilder.Entity<IdentityUser>().ToTable("MyUsers").Property(p => p.Id).HasColumnName("UserId");
modelBuilder.Entity<ApplicationUser>().ToTable("MyUsers").Property(p => p.Id).HasColumnName("UserId");
modelBuilder.Entity<IdentityUserRole>().ToTable("MyUserRoles");
modelBuilder.Entity<IdentityUserLogin>().ToTable("MyUserLogins");
modelBuilder.Entity<IdentityUserClaim>().ToTable("MyUserClaims");
modelBuilder.Entity<IdentityRole>().ToTable("MyRoles");
但是您可以使用 Alexandru Bucur 在他的博客上给出并在 netcore 2.2 上测试过的这种方法来简化
foreach (var entityType in modelBuilder.Model.GetEntityTypes())
{
var table = entityType.Relational().TableName;
if (table.StartsWith("AspNet"))
{
entityType.Relational().TableName = table.Substring(6);
}
};
但这不再支持 netcore > 2.2,所以,我需要修复它,这是 NetCore > 2.2 上的功能方式
foreach (var entityType in modelBuilder.Model.GetEntityTypes())
{
var tableName = entityType.GetTableName();
if (tableName.StartsWith("AspNet"))
{
entityType.SetTableName(tableName.Substring(6));
}
}
选择你喜欢的并享受它,HappyCoding
关于asp.net-mvc - 如何更改 .NET CORE 中的默认 ASP.NET Identity 表名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41442513/