Update und Delete per Lambda-Ausdruck mit EF Plus
17.09.2018, 00:00 Uhr
Lambda statt SQL
Mit LINQ lassen sich SQL-Befehle robuster schreiben – mit EF Plus auch für DELETE und UPDATE.
Einigen Nutzern von Entity Framework (EF) und Entity Framework Core wird beim Lesen des obigen Satzes sofort die Frage in den Kopf kommen: Warum sollte ich überhaupt DELETE- oder UPDATE-Befehle selbst schreiben wollen? Das macht doch der objektrelationale Mapper für mich, wenn ich Objekte lösche oder ändere und dann SaveChanges() aufrufe. Es gibt darauf drei Antworten: Performance, Performance und Performance. Tabelle 1 zeigt die Ausführungsgeschwindigkeit für verschiedene Verfahren, um 1 000 Flug-Datensätze aus der Beispieldatenbank „World Wide Wings“ [1] zu löschen.
Tabelle 1: Löschverfahren mit EF Core 2.1 und SQL Server 2016
Löschen von 1 000 Flug-Datensätzen | Datenbankanfragen | Anzahl DELETE-Befehle | Ausführungszeit |
Ohne Batching mit EF-Core-API | 1 001 | 1 000 | 43,637 Sekunden |
Mit Batching mit EF-Core-API | 2 | 1 000 | 4,392 Sekunden |
Mit Batching mit EF-Core-API unter Einsatz von Pseudoobjekten | 1 | 1 000 | 0,207 Sekunden |
Mit SQL über EF-Kontext | 1 | 1 | 0,072 Sekunden |
Mit SQL über ADO.NET- Command-Objekt mit Parameter | 1 | 1 | 0,040 Sekunden |
Mit EF Plus | 1 | 1 | 0,037 Sekunden |
Tabelle 1: Löschverfahren mit EF Core 2.1 und SQL Server 2016
Löschen von 1 000 Flug-Datensätzen | Datenbankanfragen | Anzahl DELETE-Befehle | Ausführungszeit |
Ohne Batching mit EF-Core-API | 1 001 | 1 000 | 43,637 Sekunden |
Mit Batching mit EF-Core-API | 2 | 1 000 | 4,392 Sekunden |
Mit Batching mit EF-Core-API unter Einsatz von Pseudoobjekten | 1 | 1 000 | 0,207 Sekunden |
Mit SQL über EF-Kontext | 1 | 1 | 0,072 Sekunden |
Mit SQL über ADO.NET- Command-Objekt mit Parameter | 1 | 1 | 0,040 Sekunden |
Mit EF Plus | 1 | 1 | 0,037 Sekunden |
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