Es gibt keine implizite Referenzkonvertierung von ApplicationUser zu IdentityUser

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

Frage

Ich versuche einige ASP.NET Identity Core-Klassen anzupassen, die Generics verwenden.

Meine ApplicationUser-Klasse:

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

Meine ApplicationUserStore-Klasse:

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

    }
}

Fehlermeldung ist:

'AspDotNetCoreFullFramework.Identity. ApplicationUser 1[System.Guid]', on Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore`8 [TUser, TRole, TContext, TKey, TUserClaim, TUserRole, TUserLogin, TUserToken]' verletzt die Einschränkung des Typparameters 'TUser'

Wenn ich nun zur .NET-Implementierung von UserStore (Basisklasse) gehe:

Öffentliche Klasse UserStore <TUser, TRole, TContext, TKey>: Benutzerspeicher <TUser, TRole, TContext, TKey, IdentityUserClaim <TKey>, IdentityUserRole <TKey>, IdentityUserLogin <TKey>, IdentityUserToken <TKey>
wo TUser: IdentityUser <TKey>
... wo TKey: IEquatable <TKey> {

Ich kann sehen, dass ApplicationUser von IdentityUser <GUID> erbt. Diese Einschränkung ist erfüllt. TKey ist GUID, die IEquatable <GUID> implementiert. Diese Einschränkung ist ebenfalls erfüllt.

Also, wo liegt das Problem?

Akzeptierte Antwort

Hinzufügen der GUID zu

IdentityBuilder.AddEntityFrameworkStores<ApplicationDbContext,Guid>();

Wie in diesem Post erwähnt, löste das Problem.



Related

Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum