Search code examples
asp.net-core-mvcasp.net-identity.net-coreasp.net-core-2.0

AddEntityFrameworkStores can only be called with a role that derives from IdentityRole in .NET Core 2.0


I have changed a project from the .NET Core 1.1 to 2.0 version, but I'm getting an error from the Identity, when It tries to add the stores:

services.AddIdentity<ApplicationUser, IdentityRole<long>>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();

The thrown error is:

AddEntityFrameworkStores can only be called with a role that derives from IdentityRole

These are my classes:

public class ApplicationUser : IdentityUser<long>
{
}

public class ApplicationDbContext : IdentityDbContext<ApplicationUser, IdentityRole<long>, long>        
{
        public ApplicationDbContext(DbContextOptions options) : base(options) { 
        }
}

Someone could help me?


Solution

  • Long time since I asked this question, but here's how I deal with nowadays:

    Startup.cs

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

    Entites:

    public class User : IdentityUser<int>
    {
    }
    
    public class Role : IdentityRole<int>
    {
    }