Il n'y a pas de conversion de référence implicite d'ApplicationUser à IdentityUser

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

Question

J'essaie de personnaliser certaines classes ASP.NET Identity Core utilisant Generics.

Ma classe ApplicationUser:

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

Ma classe ApplicationUserStore:

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

    }
}

Le message d'erreur est:

'AspDotNetCoreFullFramework.Identity. ApplicationUser 1[System.Guid]', on Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore`8 [Tuser, trole, TContext, TKey, TUserClaim, TUserRole, TUserLogin, TUserToken]' viole la contrainte de paramètre de type 'Tuser'

Maintenant, quand je vais à l'implémentation .NET de UserStore (classe de base):

Classe publique UserStore <TUser, TRole, TContext, TKey>: UserStore <TUser, TRole, TContext, TKey, IdentityUserClaim <TKey>, IdentityUserRole <TKey>, IdentityUserLogin <TKey>, IdentityUserToken <TKey >>
où TUser: IdentityUser <TKey>
... où TKey: IEquatable <TKey> {

Je constate que ApplicationUser hérite d'IdentityUser <GUID>. Cette contrainte est remplie. TKey est un GUID qui implémente IEquatable <GUID>. Cette contrainte est également remplie.

Alors quel est le problème?

Réponse acceptée

Ajout du GUID à

IdentityBuilder.AddEntityFrameworkStores<ApplicationDbContext,Guid>();

comme mentionné dans ce post résolu le problème.



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi