重命名ASP.NET标识表时重复外键

时间:2014-02-26 21:51:16

标签: c# sql asp.net-mvc entity-framework-5 asp.net-identity

我按照this question中的建议重命名我的ASP.NET标识表:

modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaim");
modelBuilder.Entity<IdentityUserRole>().ToTable("UserRole");
modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogin");
modelBuilder.Entity<IdentityRole>().ToTable("Role");
modelBuilder.Entity<IdentityUser>().ToTable("User");
modelBuilder.Entity<ApplicationUser>().ToTable("User");

但是,这会导致UserClaim与用户关系的两个属性 - UserIdIdentityUser_Id

enter image description here

有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:26)

你应该跳过以下行,然后它运作得非常好:

modelBuilder.Entity<IdentityUser>().ToTable("User");

所以你需要的唯一映射是:

modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaim");
modelBuilder.Entity<IdentityUserRole>().ToTable("UserRole");
modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogin");
modelBuilder.Entity<IdentityRole>().ToTable("Role");
modelBuilder.Entity<ApplicationUser>().ToTable("User");

希望有所帮助。