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. ApplicationUser 1[System.Guid]', on Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore`8 [TUser, TRole, TContext, TKey, TUserClaim, TUserRole, TUserLogin, TUserToken]' 매개 변수 'TUser'형식의 제약 조건을 위반합니다.

이제 UserStore (Base 클래스)의 .NET 구현을 살펴 보겠습니다.

TKey, IdentityUserRole <TKey>, IdentityUserLogin <TKey>, IdentityUserToken <TKey>, <TKey>, <TKey>, <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는 합법적입니까? 예, 이유를 알아보십시오.