Anpassungen des Mappings bei Entity Framework Core 17.11.2016, 00:00 Uhr

Abbildungsoptionen

Beim Erzeugen von Datenbankschemata braucht Entity Framework Core manchmal etwas Nachhilfe.
Bereits das Beispiel in der letzten Ausgabe dieser Kolumne hat gezeigt, dass Konventionen nicht immer ausreichen, um mit Entity Framework (EF) Core ein gültiges Datenbankschema aus einem Objektmodell zu erzeugen [1]. Nachhilfe durch den Softwareentwickler war in dem Fall notwendig bei zusammengesetzten Primärschlüsseln, Primärschlüsseln für erbende Klassen sowie dem Deaktivieren des kaskadierenden Löschens, weil es sonst zu zirkulären Löschoperationen kommt. Dieser Beitrag zeigt nun noch einmal systematisch alle Möglichkeiten, wie der Entwickler mit Daten­annotationen in den Entitätsklassen oder dem Fluent-API in der Methode OnModelCreating() in der Kontextklasse EF Core mitteilen kann, wie das Datenbankschema zu erzeugen ist. Man bezeichnet diese Möglichkeiten als Konfiguration des Datenbankschemas. Es gelten dabei drei Grundregeln:
  • Die Konfiguration per Datenannotationen oder Fluent-API wiegt schwerer als Konventio­nen. Das heißt, eine Konfiguration setzt im Einzelfall Konventionen außer Kraft. Microsoft spricht bei EF Core zwar von „Konvention vor Konfiguration“, damit ist jedoch gemeint, dass durch Konventionen die explizite Konfiguration­ überflüssig werden soll, so weit es geht.
  • Bei sich widersprechenden Datenannotationen und Fluent-API-Aufrufen wiegt der Fluent-API-Aufruf schwerer.
  • Alle Konfigurationen lassen sich per Fluent-API ausdrücken. Ein Teil davon ist auch per Datenannotation möglich.

Jetzt 1 Monat kostenlos testen!

Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
  • + Digitales Kundenkonto,
  • + Zugriff auf das digitale Heft,
  • + Zugang zum digitalen Heftarchiv,
  • + Auf Wunsch: Weekly Newsletter,
  • + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar