将 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 中。
我在我的管理控制器中遇到无法解决“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 中。