【发布时间】:2014-12-22 06:07:42
【问题描述】:
我想更改 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
【问题讨论】:
-
你得到什么错误?发布错误。
-
<ApplicationUser>行(向下第 2 行)尤其重要,如果您不想在其中只有一个ID有一个悬空的AspNetUsers表。该行将 ApplicationUser 重新聚焦到新的 MyUsers 表。
标签: c# asp.net-mvc-5 asp.net-identity