使用泛型类型 'IdentityUserRole<TKey>' 需要 1 个类型参数

Iba*_*408 3 c# asp.net-core

尝试重命名使用 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 上没有收到任何错误,但在其他方面,我收到了错误。请看下图:

在此处输入图片说明

Dar*_*rem 7

问题是 IdentityUserRole、IdentityuserClaim 和 IdentityuserLogin 也是泛型类。因为这个表的键是由泛型类型指定的。

这是来自文档

IdentityUserLogin 类

和实施

Github 实现

因此,您必须执行以下操作,例如:

modelBuilder.Entity<IdentityUserLogin<string>>().ToTable("UserLogin");
Run Code Online (Sandbox Code Playgroud)

我希望这对你有帮助。