c# - 使用泛型类型 'IdentityUserRole' 需要 1 个类型参数
问题描述
为什么我在尝试重命名使用 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 上没有收到任何错误,但在其余部分,我收到了错误。请看下图:
解决方案
问题是 IdentityUserRole、IdentityuserClaim 和 IdentityuserLogin 也是通用类。因为这个表的键是由泛型指定的。
这是来自文档
以及实施
因此,您必须执行以下操作:
modelBuilder.Entity<IdentityUserLogin<string>>().ToTable("UserLogin");
我希望这对你有帮助。
推荐阅读
- javascript - 如何在 JDEV 12c 中使用 Javascript 单击时设置链接样式
- vue.js - 哈希模式下的 VueJS 路由器:如果找不到文件,则路由到错误页面
- php - 尝试使用包含变量的 php 重命名函数
- javascript - 如何在 D3 中附加多个矩形?
- c# - 如何访问 form1.cs 中的任务表单 program.cs
- tinymce - 如何避免内联工具栏自动隐藏在tinymce中?
- java - Appium Android 失败 adb pm pull 命令
- python - matplotlib 在多个文件中错误地绘制
- java - Android studio 文件浏览器
- r - dplyr - 使用 rowwise() 应用自定义函数