ASPコアは、文字列の型パラメータ 'TRole'の制約に違反します。

asp.net-core asp.net-identity c# entity-framework-core

質問

私はASP Core RC2サイトでopeniddictとEF 7を使用しようとしています。 dotnet ef migrations add <name>を使用して移行を作成しようとすると、 dotnet ef migrations add <name>dotnet ef migrations add <name>て次のエラーが表示されます。

System.ArgumentException: GenericArguments[1], 'System.String', on 'Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore`3[TUser,TRole,TContext]' violates the constraint of type 'TRole'. ---> System.TypeLoadException: GenericArguments[1], 'System.String', on 'Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore`4[TUser,TRole,TContext,TKey]' violates the constraint of type parameter 'TRole'.
at System.RuntimeTypeHandle.Instantiate(RuntimeTypeHandle handle, IntPtr* pInst, Int32 numGenericArgs, ObjectHandleOnStack type)
at System.RuntimeTypeHandle.Instantiate(Type[] inst)

私のStartup.csには次のものがあります:

        services.AddIdentity<MyUser, string>()
            .AddEntityFrameworkStores<MyContext>()
            .AddDefaultTokenProviders()
            .AddOpenIddict();

私のユーザとコンテキストは次のように定義されています:

         public class MyUser : IdentityUser
         {
         }
         public class MyContext : OpenIddictContext<MyUser>
         {
         }

エラーはTRoleの文字stringを使用すると言ったという事実と関係があります。これは許されないのですか? TRoleではどのようなタイプがサポートされていますか?

人気のある回答

エラーはTRoleの文字列を使用すると言ったという事実と関係があります。これは許されないのですか? TRoleではどのようなタイプがサポートされていますか?

いいえ、そうではありません。 ASP.NET Core IdentityにデフォルトのEntity Frameworkストアを使用する場合、ロールエンティティはIdentityRoleから継承する必要があります。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ