【发布时间】:2016-09-30 04:12:50
【问题描述】:
我正在尝试在我的 ASP Core RC2 站点中使用 openiddict 和 EF 7。当我尝试使用 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>
{
}
我认为这个错误与我说过要使用字符串string 来表示 TRole 的事实有关。这是不允许的吗? TRole 支持哪些类型?
【问题讨论】:
标签: c# asp.net-core asp.net-identity entity-framework-core