将 AspNetUsers Id 列的数据类型更改为 int 时无法解析类型“Microsoft.AspNetCore.Identity.RoleManager”的服务

Unable to resolve service for type 'Microsoft.AspNetCore.Identity.RoleManager` While changing the datatype of AspNetUsers Id column to int

我在我的管理控制器中遇到无法解决“Microsoft.AspNetCore.Identity.RoleManager”类型服务的问题 这是我在 Administration Controller

中注入 RoleManager 的方式
        private readonly RoleManager<IdentityRole> roleManager;
        private readonly UserManager<ApplicationUser> userManager;
        public AdministrationController(RoleManager<IdentityRole> roleManager,UserManager<ApplicationUser> userManager)
        {
            this.roleManager = roleManager;
            this.userManager = userManager;
        }

并且在我的 startup.cs 文件中添加了这样的身份服务

  services.AddIdentity<ApplicationUser, IdentityRole<int>>()
              .AddEntityFrameworkStores<CISContext>()
              .AddDefaultTokenProviders();

正如您在我的 startup.cs 文件中添加身份服务时看到的那样,我在我的 IdentityRole class 中添加了数据类型,以便将 AspNetUsers Id 列的数据类型从字符串更改为 int

请问我该如何解决这个问题?

只是预感,因为我没有对此进行测试并且有一段时间没有使用角色,但是您是否尝试过在注入时指定泛型类型参数?

RoleManager<IdentityRole<int>> roleManager.

因为我注意到您通过指定非默认 int 密钥类型将其添加到 startup.cs 中。