Нет никакого неявного преобразования ссылок из ApplicationUser в IdentityUser

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

Вопрос

Я пытаюсь настроить некоторые классы ASP.NET Identity Core, которые используют Generics.

Мой класс 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'

Теперь, когда я перехожу к .NET-реализации UserStore (базового класса):

публичный класс 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 - это GUID, который реализует IEquatable <GUID>. Это ограничение также выполняется.

Так в чем проблема?

Принятый ответ

Добавление идентификатора GUID в

IdentityBuilder.AddEntityFrameworkStores<ApplicationDbContext,Guid>();

как упоминалось в этой статье, решена проблема.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему