プロジェクトを.NET Core 1.1から2.0バージョンに変更しましたが、ストアを追加しようとすると、Identityからエラーが発生します。
services.AddIdentity<ApplicationUser, IdentityRole<long>>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
スローされるエラーは次のとおりです。
AddEntityFrameworkStoresは、IdentityRoleから派生するロールでのみ呼び出すことができます
これらは私のクラスです:
public class ApplicationUser : IdentityUser<long>
{
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, IdentityRole<long>, long>
{
public ApplicationDbContext(DbContextOptions options) : base(options) {
}
}
誰か助けてもらえますか?
私がこの質問をしてから久しぶりですが、ここに私が今日どのように対処するかがあります:
Startup.cs
services.AddIdentity<User, Role>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddScoped<RoleManager<Role>>();
タイトル:
public class User : IdentityUser<int>
{
}
public class Role : IdentityRole<int>
{
}
同じ問題については、これを見ることができます: https://github.com/aspnet/Identity/issues/1364
まず、これらの2つのクラスを次のように作成します。(カスタムエンティティ)
public class AppUser : IdentityUser<long>
{
}
public class AppRole : IdentityRole<long>
{
public AppRole() : base()
{
}
public AppRole(string roleName)
{
Name = roleName;
}
}
次に、ConfigureServices関数をStartup.csファイルに変更します。
services.AddIdentity<AppUser, AppRole>()
.AddEntityFrameworkStores<MyDbContext>()
.AddDefaultTokenProviders();
最後に、dbクラスを作成します。
public class MyDbContext : IdentityDbContext<AppUser,AppRole,long>
{
public MyDbContext(DbContextOptions<MyDbContext> options)
: base(options)
{
}
}