正在尝试更改Asp.net标识表MVC5的名称



我想更改ap.net标识表的默认名称。我脑子里有几个问题

1) 如果表已经创建并有一些数据,这可能吗

2) 我们可以更改表的名称并保持数据为吗

我试过这个代码:

protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    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");
}

但它向我抛出了模型支持上下文已更改错误

The model backing the 'ApplicationDbContext' context has changed since the database was created. Consider using Code First Migrations to update the database

您可能需要禁用初始化程序。我关闭了它,因为我更喜欢维护我的数据库和代码。例如

Database.SetInitializer<Entities>( null );

如果你想的话,你也可以保持模型名称的原样,并在模型中明确指定表名,例如:

[Table( "NewTableName" )]
internal class OldTableName
{
    ....
}

相关内容

  • 没有找到相关文章

最新更新