從ApplicationUser到IdentityUser沒有隱式引用轉換

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

我正在嘗試自定義一些使用Generics的ASP.NET Identity Core類。

我的ApplicationUser類:

public class ApplicationUser : IdentityUser<Guid>//, ApplicationUserClaim, ApplicationRole, ApplicationUserLogin> 
{
    public ApplicationUser() {  }
}

我的ApplicationUserStore類:

public class ApplicationUserStore : UserStore<ApplicationUser, ApplicationRole, ApplicationDbContext, Guid> 
{
    public ApplicationUserStore(ApplicationDbContext ctx, IdentityErrorDescriber describer = null) : base(ctx, describer)
    {

    }
}

錯誤信息是:

“AspDotNetCoreFullFramework.Identity。 Application.serser 1[System.Guid]', on Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore`8 [TUser,TRole,TContext,TKey,TUserClaim,TUserRole,TUserLogin,TUserToken]' 違反了類型參數'TUser'的約束

現在,當我轉到UserStore(Base類)的.NET實現時:

公共類UserStore <TUser,TRole,TContext,TKey>:UserStore <TUser,TRole,TContext,TKey,IdentityUserClaim <TKey>,IdentityUserRole <TKey>,IdentityUserLogin <TKey>,IdentityUserToken <TKey >>
其中TUser:IdentityUser <TKey>
... 其中TKey:IEquatable <TKey> {

我可以看到ApplicationUser繼承自IdentityUser <GUID>。滿足此約束。 TKey是實現IEquatable <GUID>的GUID。這個約束也得到了滿足。

那麼問題是什麼?

一般承認的答案

將GUID添加到

IdentityBuilder.AddEntityFrameworkStores<ApplicationDbContext,Guid>();

正如這篇文章中提到解決了這個問題。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因