问题
I followed the advice in this question to rename my ASP.NET Identity tables:
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");
However this results in two properties for the UserClaim to User relation - UserId
and IdentityUser_Id
:

Is there any way I can fix this?
回答1:
You should skip the following line, then it works perfectly well:
modelBuilder.Entity<IdentityUser>().ToTable("User");
So the only mapping you need is:
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");
Hope that helps.
来源:https://stackoverflow.com/questions/22054168/duplicate-foreign-keys-when-renaming-asp-net-identity-tables