Entity Framework 6 – Fehlende Tabelle mit nur Primärschlüsseln, die auf verschiedene Tabellen verweisen

Entity Framework 6 – Fehlende Tabelle mit nur Primärschlüsseln, die auf verschiedene Tabellen verweisen

Schwache Entitäten oder Join-Tabellen werden nicht von EF generiert, Sie müssen die Beziehungen manuell über die Fluent-API oder mithilfe von Datenanmerkungen konfigurieren

Wie auf der Website von Microsoft angegeben:unter der Beziehungskonvention:

Weitere Informationen finden Sie unter diesem Link

AKTUALISIERT

Eine Problemumgehung funktioniert im Fall von EDMX (aber es kostet Wartung) wie folgt:

  1. Entfernen Sie die Fremdschlüssel aus der Join-Tabelle in der Datenbank
  2. Aktualisieren Sie das EDMX aus der Datenbank
  3. Erstellen Sie die Fremdschlüssel in der Join-Tabelle neu

Diese Problemumgehung funktioniert, solange Sie Ihr Modell nicht erneut aus der Datenbank aktualisieren.

Empfohlene Lösung, behalten Sie alles bei, wie es von EDMX generiert wurde, und erfahren Sie mehr über die Verwendung von Crud-Operationen für diesen Fall, indem Sie die folgenden Links verwenden, die vom Benutzer '@TravisWhidden'

als "hilfreich" gemeldet wurden
  1. Many-to-Many-Entity-Framework einfügen/aktualisieren . Wie mache ich das?
  2. https://www.youtube.com/watch?v=uMQwORSTGX4 (Video)

Wie von @Hadi Hassan erwähnt, wird EF relationale Tabellen, die ausschließlich aus anderen Entitäten bestehen, nicht „offenlegen“ oder erkennen.

Problemumgehung:
Wenn Sie die Daten nur „LESEN“ müssen, können Sie das tun

  1. Definieren Sie einen view in Ihrem Schema für TableB .
  2. Dann mache Model (.EDMX) Update von DB (wählen Sie die Update-Ansichten)
  3. Sie können nun Ihren TableB abfragen Daten mit Ihrem EF-Kontext.

Wenn Sie Datensätze in Ihrem TableB ändern (erstellen, aktualisieren, löschen) müssen

  1. Erstellen Sie entsprechend gespeicherte Prozeduren in Ihrem Schema.

  2. Importieren Sie Ihre Prozesse als Funktion in Ihr EF-Modell

  3. Sie können diese Funktionen jetzt für den Rest Ihrer CRUD-Operationen aus Ihrem Modellkontext aufrufen.