Also versuche ich jetzt eine Weile herumzukommen, aber das scheint mir nicht zu gelingen. In meiner Anwendung verwende ich ein generisches Repository mit Entity Framework Core. Daher erwartet mein Repository immer, dass auf es von einer Klasse zugegriffen wird, die BaseEntity ist oder von dieser bestimmten Klasse geerbt hat. Jetzt möchte ich .Net Core Identity damit implementieren. Aber meine Benutzerklasse erbt von BaseEntity. Aber ich würde es auch brauchen, um von Identität zu erben, damit es funktioniert, denke ich. Wie kann ich Identity noch nutzen?
C # unterstützt nur einzelne Vererbung. Sie können nicht von zwei verschiedenen Klassen erben. Zusätzlich Klasse Benutzeridentität muss von erben IdentityUser
. Du hast keine Wahl. Daher ist es das Beste, was Sie tun können, Ihre Benutzerklasse zu erstellen, und der Rest Ihrer Entitätsklassen implementiert die gleiche Schnittstelle, dh IEntity
. Statt den generischen Typ als BaseEntity
, verwenden IEntity
stattdessen IEntity
.
Dies bedeutet natürlich, dass Sie ein wenig Code-Duplizierung IEntity
müssen, da Sie IEntity
sowohl in BaseEntity
als auch in Ihrer Benutzerklasse separat implementieren IEntity
. Dies ist jedoch unvermeidlich.