为什么会出现此错误:尝试重命名使用Identity创建的表时,“使用通用类型'IdentityUserRole'需要1个类型参数”。请在下面查看我的代码:
protected override void OnModelCreating(ModelBuilder modelBuilder){
base.OnModelCreating(modelBuilder);
//AspNetUsers -> User
modelBuilder.Entity<AppUser>()
.ToTable("User");
//AspNetRoles -> Role
modelBuilder.Entity<IdentityRole>()
.ToTable("Role");
//AspNetUserRoles -> UserRole
modelBuilder.Entity<IdentityUserRole>().ToTable("UserRole");
//AspNetUserClaims -> UserClaim
modelBuilder.Entity<IdentityUserClaim>()
.ToTable("UserClaim");
//AspNetUserLogins -> UserLogin
modelBuilder.Entity<IdentityUserLogin>()
.ToTable("UserLogin");
}
我在Entity AppUser和Entity IdentityRole上没有收到任何错误,但在其余部分,我得到了错误。请参见下图:
答案 0 :(得分:4)
问题在于IdentityUserRole,IdentityuserClaim和IdentityuserLogin也是通用类。因为此表的键是由通用类型指定的。
这来自文档
和实施
因此,您必须执行以下操作:
modelBuilder.Entity<IdentityUserLogin<string>>().ToTable("UserLogin");
希望对您有帮助。