i创建新的类,以用于更改ID类型:
public sealed class Role : IdentityRole<long>
{
}
在AppContext中,它看起来像:
builder.Entity<Role>(i => {
i.ToTable("tblRole");
i.HasKey(x => x.Id);
});
但是,当我尝试创建class rolemanager的对象时:
RoleManager<Role> roleManager = serviceProvider.GetRequiredService<RoleManager<Role>>();
我有这个例外:
无效的exception:找不到无参数构造函数 关于实体类型"角色"。为了创建"角色" EF的实例 要求声明无参数构造函数。
当我更改类型时:
RoleManager<IdentityRole> roleManager = serviceProvider.GetRequiredService<RoleManager<IdentityRole>>();
有以下例外:
无效的Exception:无服务类型 'Microsoft.aspnetcore.Identity.RoleManager`1 [Microsoft.aspnetcore.Identity.entityFrameWorkcore.IdentityRole]''' 已注册。
如何解决此问题并添加UseroLemanager添加角色?欢呼!
您必须声明构造者和班级角色中的成员,如果有关系,则必须链接到rolemanager class。您可以遵循本教程,并自动进行元素:Microsoft