尝试重命名使用 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");
}
Run Code Online (Sandbox Code Playgroud)
我在 Entity AppUser 和 Entity IdentityRole 上没有收到任何错误,但在其他方面,我收到了错误。请看下图:
问题是 IdentityUserRole、IdentityuserClaim 和 IdentityuserLogin 也是泛型类。因为这个表的键是由泛型类型指定的。
这是来自文档
和实施
因此,您必须执行以下操作,例如:
modelBuilder.Entity<IdentityUserLogin<string>>().ToTable("UserLogin");
Run Code Online (Sandbox Code Playgroud)
我希望这对你有帮助。
| 归档时间: |
|
| 查看次数: |
1359 次 |
| 最近记录: |