Schemamigrationen bei Entity Framework Core
15.12.2016, 00:00 Uhr
Hin und her
Auch Entity Framework Core legt beim Anwendungsstart Datenbanken an und ändert das Schema.
Üblicherweise geht Entity Framework (EF) Core beim Start davon aus, dass es die anzusprechende Datenbank gibt und dass diese in der korrekten Schemaversion vorliegt. Es macht sich nicht die Arbeit zu überprüfen, ob dies auch wirklich so ist. Wenn zum Beispiel eine Tabelle oder Spalte fehlt oder eine Beziehung nicht wie vorgesehen vorhanden ist, kommt es in dem Moment, in dem ein Zugriff darauf erfolgt, zum Laufzeitfehler, beispielsweise „Invalid object name 'Flugzeugtyp'“.
Der Entwickler kann zu Programmstart die Methode EnsureCreated() im Unterobjekt Database der Kontextklasse aufrufen (siehe Listing 1). Sie legt die komplette Datenbank im Sinne des Forward Engineering [1] an, falls sie nicht vorhanden ist, und erzeugt die Tabellen mit den zugehörigen Schlüsseln und Indexen.
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