Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Entity Framework Core Grundkurs

Standardwerte über das Fluent Mapping setzen

Testen Sie unsere 2013 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Attribute bieten eine bequeme Möglichkeit, um Einfluss auf das Datenbankschema zu nehmen. Einige Einschränkungen können jedoch nicht über Attribute konfiguriert, sondern müssen über den ModelBuilder vorgenommen werden.
03:34

Transkript

Über Attribute wie "Required" oder "StringLength" können Sie Einfluss darauf nehmen, wie Ihre Felder in der Datenbank erzeugt werden. Das "Fahrtziel" zum Beispiel ist in meiner Datenbank ein Feld, das nicht Nullable ist und das eine Länge von 512 Zeichen hat. Es gibt jedoch einige Eigenschaften, die Sie nicht über Attribute setzen können. Zum Beispiel den Standardwert. Ich würde nun gerne den Standardwert für den "Fahrttypen" auf Null setzen. Und Null für den "Fahrttypen", wenn wir hier einmal kurz hereinschauen, dann sehen wir, dass dies einem Wert von "Geschaeftlich" entspricht. Wie kann ich nun also so einen Standardwert setzen, wenn es über Attribute nicht geht? Dazu habe ich an meinem DbContext die Methode OnModelCreating, die ich überschreiben kann. Dazu schreibe ich override und anschließend OnModelCreating. Und das geschieht, wie gesagt, in meiner Kontext-Klasse. Den Basis-Aufruf entferne ich kurz und schreibe nun, dass ich ganz gerne Einfluss nehmen möchte auf die Entität "Fahrt". Und zwar möchte ich hier für die Eigenschaft "Fahrttyp"... Sie sehen, das Ganze geht hier über so einen Lambda-Ausdruck. Für diese Eigenschaft möchte ich also gerne einen Standardwert definieren. Und zwar einen Standardwert von Null, was eben meinem Eintrag "Geschaeftlich" entspricht. Wenn ich nun eine neue Migration anlege, über Add-Migration in der Package-Manager-Konsole, und zwar wenn ich diese nun StandardWertFahrtTyp, dann werden wir sehen, dass wir hier einen Fehler bekommen. Das liegt daran, weil er hier den Int32-Wert nicht setzen kann. Also, trage ich hier einmal den entsprechenden Enum-Wert ein. Das ist "Fahrttyp.Geschaeftlich". Und jetzt machen wir das Ganze nochmal. So, dann haben wir die Migration. Und hier sehen wir, dass dieser Enum-Wert jetzt in den tatsächlichen nummerischen Wert, der in der Datenbank später stehen muss, übertragen worden ist, und nämlich der Wert Null. Und zu guter Letzt führe ich diese Migration noch aus. Das auch wieder in der Paket-Manager-Konsole über Update-Database. Und wenn ich mir nach erfolgreicher Ausführung die Struktur meiner Tabelle "Fahrten" anschaue... Jetzt muss ich die einmal hier schließen und danach erneut öffnen. ...dann sehe ich, dass hier der Standardwert Null angegeben worden ist. Wie wir also gesehen haben, gibt es einige Dinge, die wir nicht über Attribute konfigurieren können. Zum Beispiel Standardwerte. Andere Beispiele wären indices oder sequences. In einem solchen Fall gehe ich deshalb in den Kontext und überschreibe die Methode "OnModelCreating". Pro Eigenschaft einer Entität kann ich nun verschiedene Werte setzen, zum Beispiel den DeafultValue, wie in diesem Beispiel hier.

Entity Framework Core Grundkurs

Lernen Sie die Features von Microsofts O/R-Mapper kennen und wie Sie ihn in praktischen Anwendungen einsetzen.

2 Std. 29 min (29 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!