Asp.net core mvc 只能使用从.NET Core 2.0中的IdentityRole派生的角色调用AddEntityFrameworkStores

Asp.net core mvc 只能使用从.NET Core 2.0中的IdentityRole派生的角色调用AddEntityFrameworkStores,asp.net-core-mvc,asp.net-identity,.net-core,asp.net-core-2.0,Asp.net Core Mvc,Asp.net Identity,.net Core,Asp.net Core 2.0,我已将一个项目从.NET Core 1.1版本更改为2.0版本,但在尝试添加存储时,我从标识中得到一个错误: services.AddIdentity<ApplicationUser, IdentityRole<long>>() .AddEntityFrameworkStores<ApplicationDbContext>() .AddDefaultTokenProviders(); services.AddIdentity() .AddEntityFram

我已将一个项目从.NET Core 1.1版本更改为2.0版本,但在尝试添加存储时,我从标识中得到一个错误:

services.AddIdentity<ApplicationUser, IdentityRole<long>>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddIdentity()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
引发的错误是:

只能使用派生的角色调用AddEntityFrameworkStores 来自IdentityRole

这些是我的课程:

public class ApplicationUser : IdentityUser<long>
{
}

public class ApplicationDbContext : IdentityDbContext<ApplicationUser, IdentityRole<long>, long>        
{
        public ApplicationDbContext(DbContextOptions options) : base(options) { 
        }
}
公共类应用程序用户:IdentityUser
{
}
公共类ApplicationDbContext:IdentityDbContext
{
公共应用程序DBContext(DbContextOptions选项):基本(选项){
}
}

有人能帮我吗?

对于同样的问题,你可以看看这个:

我问这个问题很久了,但我现在是这样处理的:

Startup.cs

services.AddIdentity<User, Role>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddScoped<RoleManager<Role>>();
services.AddIdentity()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
services.addScope();
实体:

public class User : IdentityUser<int>
{
}

public class Role : IdentityRole<int>
{
}
公共类用户:IdentityUser
{
}
公共类角色:IdentityRole
{
}

首先,按如下方式创建这两个类:(自定义实体)

公共类AppUser:IdentityUser
{
}
公共类许可:IdentityRole
{
公共许可证():基本许可证()
{
}
公共许可证(字符串roleName)
{
名称=roleName;
}
}
然后将ConfigureServices功能更改为Startup.cs文件:

services.AddIdentity<AppUser, AppRole>()
    .AddEntityFrameworkStores<MyDbContext>()
    .AddDefaultTokenProviders();
services.AddIdentity()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
最后,创建db类:

public class MyDbContext : IdentityDbContext<AppUser,AppRole,long>
{
    public MyDbContext(DbContextOptions<MyDbContext> options)
       : base(options)
    {
    }
}
公共类MyDbContext:IdentityDbContext { 公共MyDbContext(DbContextOptions) :基本(选项) { } }
非常混乱的链接。。。转向如此多的切线。。。除非我在下一个小时的产品开发中花时间涉过它,否则我无法判断哪一个是相似的。你找到解决方案了吗?同样的问题,你找到解决方案了吗?
public class MyDbContext : IdentityDbContext<AppUser,AppRole,long>
{
    public MyDbContext(DbContextOptions<MyDbContext> options)
       : base(options)
    {
    }
}