Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Entity Framework Core Grundkurs

Objekthierarchien speichern

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Das Entity Framework kann nicht nur einzelne Datensätze, sondern ganze Objekthierarchien speichern.
04:02

Transkript

Wie Sie ein einzelnes Objekt mit dem Entity Framework persistieren können, das zeigt folgendes Beispiel. Sie legen das Objekt an, fügen es zum DbSet hinzu und rufen anschließend "SaveChanges" auf. Aber natürlich kann das Entity Framework nicht nur einzelne Datensätze speichern, sondern auch gleich mehrere auf einmal. Und zwar nicht nur einfach so mehrere, sondern mehrere, die über eine Hierarchie hinzugefügt werden. Was bedeutet das? Schauen wir uns einmal die Methode "InsertHierarchy" an. Ich erzeuge hier einen DbContext und innerhalb des Kontextes erzeuge ich hier einen neuen Fahrer. Der wird dann auch dem "Fahrer"-DbSet hinzugefügt. Und ich erzeuge ein neues Fahrzeug. Diesem Fahrzeug werden anschließend, und das sehen wir hier unten, 100 Fahrten hinzugefügt. Und diese Fahrten, die starten am heutigen Tage -40 Tage. Und dazu wird jeweils der aktuelle Schleifendurchlaufswert durch 3 noch hinzuaddiert. Und da ich hier eine Integer-Division benutze, führt das dazu, dass wir 3 Fahrten pro Tag haben. Die Uhrzeit, da wird 10 Uhr angenommen. Dann werden noch ein paar Werte hinzuaddiert. Das wäre also irgendwo morgens ab 10 landen und abends dann ungefähr bis 21 Uhr die letzte Fahrt haben sollten. Außerdem werden noch bis zu 45 Minuten durch einen Zufallsgenerator hinzugefügt. Die Bis-Zeit, das ist die Von-Zeit und dazu 20 bis 55 Minuten hinzuaddiert. Der Kilometerstand ist immer der letzte Kilometerstand, der hier oben einmal mit Null initialisiert wird. Das muss natürlich raus aus der Schleife und hierhin. Und anschließend wird der Endkilometerstand berechnet auf Basis einer Durchschnittsgeschwindigkeit von 50 Kilometer pro Stunde und der zuvor berechneten Dauer. Der "Fahrttyp", der schaut so aus, dass die ersten beiden Fahrten am Tag, die sind immer beruflich an einer Tour, nämlich ein Kundenbesuch und eine Rückfahrt ins Büro. Die letzte Fahrt ist immer Privat. Dementsprechend ist auch das Ziel hier immer eine Kundenstraße, dann wieder die Büroadresse. Und zu guter Letzt geben wir gar nichts an, weil es eben eine Privatfahrt ist. Diese Fahrt, die wird jetzt dem Fahrzeug hinzugefügt, nämlich der Fahrten-Auflistung des Fahrzeugs. Bemerkenswert ist dabei, dass das Fahrzeug noch nicht gespeichert ist, genauso wenig wie der Fahrer, den wir hier benutzen. Am Ende, und das ist wichtig, füge ich das Fahrzeug noch der Fahrzeug-Auflistung, beziehungsweise dem Fahrzeug-DbSet hinzu. Was die Fahrten-Auflistung am Fahrzeug angeht, ist noch zu beachten, dass wir hier einfach nur eine ICollection haben, die nicht initialisiert worden ist. Und deswegen habe ich die hier oben im Konstruktor noch initialisiert. Setze das Ganze also auf einen neuen HashSet. Und ein HashSet, das ist eine Auflistung, in der jedes Element nur einmal vorkommen kann, was ja durchaus Sinn macht, denn jede Fahrt darf nur einmal erfasst werden. So, ich schaue einmal in meine Fahrten-Tabelle herein und die ist aktuell leer. Und wenn ich mein Programm jetzt einmal starte, dann sollte die gleich gefüllt sein. So, das Programm wurde ausgeführt, ist beendet. Und die Aktualisierung zeigt: ich habe Fahrten. Und zwar genau so, wie wir das gesagt haben. Wenn ich das hier mal sortiere, dann sehen wir das auch. Ich habe immer abwechselnd eine private und zwei geschäftliche Fahrten. Und wenn ich dann noch in meine Tabelle "Fahrzeuge" hereinschaue, dann sehe ich, dass jetzt auch hier die entsprechenden... Ah, das war falscher Knopf. ...dann sehe ich auch, dass hier das entsprechende Fahrzeug neu angelegt worden ist. Bedeutet also, wir können mit dem Entity Framework nicht nur einzelne Datensätze speichern, so wie wir das hier oben in der Methode "InsertRecord" gesehen haben, sondern wir sind auch in der Lage ganze Listen und Hierarchien zu speichern. Wichtig ist nur, dass die Wurzel einer Hierarchie immer einem DbSet hinzugefügt werden muss. Das sehen wir hier. Und dass wir am Ende "SaveChanges" aufrufen.

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!