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

Entity Framework Core Grundkurs

Daten löschen

Testen Sie unsere 2021 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Um Daten zu löschen, müssen Sie zunächst in den Kontext geladen werden. Anschließend reichen Remove und SaveChanges aus.
02:52

Transkript

Um einen Datensatz mit dem Entity Framework löschen zu können, zum Beispiel in meiner "Fahrer"-Tabelle den Fahrer mit der Id "10", muss ich ihn erst über den DbContext laden. Heißt, ich würde hier also meinen Fahrer, den ich jetzt löschen möchte, laden, indem ich db.Fahrer.Single(x = x.Id 10) aufrufe, um den Fahrer mit der Id "10" zu laden. Und nachdem ich ihn geladen habe, kann ich ihn von der Fahrer-Auflistung entfernen. Jetzt weiß das Entity Framework über den Change Tracker, dass dieser Datensatz gelöscht werden soll, sobald "SaveChanges" aufgerufen wird. Heißt, wenn ich mein Programm jetzt starte, und hier in die Tabelle hereinschaue, dann sehen wir, dass der Fahrer mit der Id "10" nun nicht mehr da ist. Natürlich ist es ein wenig umständlich Datensätze erst laden zu müssen, um sie löschen zu können. Es macht immer dann Sinn, wenn Sie den Datensatz sowieso schon geladen hatten. Wenn Sie allerdings nur seine Id kennen, dann können Sie stattdessen auch folgendes machen: Sie können hingehen und können einfach einen Fahrer erzeugen und diesem einen bestimmten Entitätsstatus zuweisen. Was bedeutet das? Das bedeutet, ich hätte schreiben können: var fahrer = new Fahrer und zwar mit der Id "10". Anschließend hätte ich gesagt: db.Entry(fahrer).State=EntityState.Deleted Und wenn ich nun "SaveChanges" aufgerufen hätte, dann wäre der Change Tracker genauso der Meinung gewesen, dass dieser Datensatz hier erst gelöscht werden muss. Sie sehen, die Syntax ist ein wenig langwierig und umständlich. Das Ganze kann ich natürlich verkürzen, indem ich hier ein Using Statement hereinhole, für Microsoft Entity Framework Core. Was es aber auf jeden Fall ist, ist dass es effizienter ist, weil ich bei dieser Variante hier den Datensatz zuvor nicht laden muss. Als Hausregel können Sie sich also merken: Wenn Sie den Datensatz sowieso schon geladen haben, dann können Sie einfach über "Remove" auf dem entsprechenden DbSet den Datensatz entfernen und das mit "SaveChanges" speichern. Wenn Sie den Datensatz vorher noch nicht geladen haben und nur seine Id kennen, dann kann es mehr Sinn machen, sich hier so ein Pseudo-Objekt anzulegen und dann über db.Entry die Eigenschaft "State" auf den "EntityState.Deleted" zu setzen, ehe Sie abschließend speichern.

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!