2017-06-28 9 views
1

は私が変更IDタイプの新しいクラスを作成します。AppContextをで、それがどのように見える.NETは、コア・アイデンティティ・RoleManager例外

public sealed class Role : IdentityRole<long> 
{ 

} 

builder.Entity<Role>(i => { 
    i.ToTable("tblRole"); 
    i.HasKey(x => x.Id); 
}); 

しかし、私はクラスRoleManagerのオブジェクトを作成しようとすると:

RoleManager<Role> roleManager = serviceProvider.GetRequiredService<RoleManager<Role>>(); 

私はこの例外を持っています

InvalidOperationException:エンティティタイプ 'Role'でパラメータなしのコンストラクタが見つかりませんでした 'Role'のインスタンスを作成するには、EF では、パラメータのないコンストラクタを宣言する必要があります。

私はタイプ変更:

RoleManager<IdentityRole> roleManager = serviceProvider.GetRequiredService<RoleManager<IdentityRole>>(); 

は、この例外を持っている:

と、InvalidOperationException:タイプ なしサービス「Microsoft.AspNetCore.Identity.RoleManager`1 [Microsoft.AspNetCore。 Identity.EntityFrameworkCore.IdentityRole] ' が登録されています。

どのように私はこの問題を修正し、追加役割のuseRoleManagerを追加できますか? 乾杯!

+0

どのように 'AddIdentity'を呼びますか? – NtFreX

+0

このような@NtFreX: 'services.AddIdentity () .AddEntityFrameworkStores () .AddDefaultTokenProviders() .AddUserStore >() .AddRoleStore < RoleStore >(); ; ' –

答えて

1

コンストラクタとメンバーをRoleクラスに宣言し、RoleManagerクラスにリンクする必要があります。 このチュートリアルに従い、自動的に生成されます:Microsoft

関連する問題