Ich versuche, EF7-Migrationen zu verwenden, und bin stecken geblieben, als ich ein Organisationsmodell mit Vererbung modelliert habe.
Organisation ist eine abstrakte Klasse und es gibt zwei konkrete Klassen, die sie erben, genannt Individuum und Firma.
Ich setze die abstrakte Klasse der Organisation als DbSet in DbContext und führe Migrationen durch.
Ich folge diesem Tutorial hier
Der folgende Fehler wird angezeigt:
Der entsprechende CLR-Typ für den Entitätstyp 'Organisation' ist nicht instanziierbar, und im Modell gibt es keinen abgeleiteten Entitätstyp, der einem konkreten CLR-Typ entspricht.
Was soll ich tun?
BEARBEITEN - Mit Code aktualisiert
Organisation
%Vor%Individuell
%Vor%Unternehmen
%Vor%DbContext
%Vor%Vielen Dank im Voraus!
Siehe: Ссылка
Wenn Sie ein DbSet für eine oder mehrere Entitäten in der Hierarchie nicht verfügbar machen möchten, können Sie die Fluent-API verwenden, um sicherzustellen, dass sie im Modell enthalten sind.
Wenn Sie für jede Unterklasse kein DbSet
erstellen wollen, müssen Sie sie explizit in der OnModelCreating
überschreiben des DbContext
:
Ähnlich wie das Tutorial, das Sie verlinkt haben, sollten Ihre DbSet<>
-Eigenschaften die erbenden Individual
und Company
-Klassen sein.
Versuchen Sie, Ihr CoreDbContext
mehr wie folgt aussehen zu lassen:
Das Problem könnte sein, dass Sie ein class library
-Projekt verwenden. In RC2 von EF Core können Sie Ihren DBContext nicht in ein solches Projekt einfügen. Dies ist ein bekanntes Problem. Wenn Sie es in ein 'App'-Projekt konvertieren, sollte es wieder funktionieren.
Weitere Informationen & amp; Quelle:
Umgehung: Ссылка
Github-Problem: Ссылка
Tags und Links c# entity-framework asp.net-core entity-framework-core