EF7 Migrationen - Der entsprechende CLR-Typ für den Entitätstyp '' ist nicht instanziierbar

8

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!

    
Rovdjuret 23.05.2016, 18:35
quelle

3 Antworten

11

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 :

definieren %Vor%     
jcmcbeth 10.09.2016, 14:57
quelle
1

Ä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:

%Vor%     
Nick Cromwell 23.05.2016 19:29
quelle
0

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: Ссылка

    
Tom Droste 23.05.2016 19:22
quelle