INSERT, UPDATE und DELETE per Stored Procedure mit Entity Framework Core 7.0
13.02.2023, 00:00 Uhr
Vorgeschriebene Prozeduren
Entity Framework Core 7.0 kann bei SaveChanges() auch Stored Procedures aufrufen, statt SQL-Befehle selbst zu erzeugen.
Die Diskussion über das Für und Wider von Stored Procedures ist uralt. Fakt ist aber: In einigen Unternehmen sind Änderungsoperationen auf einigen oder sogar allen Datenbanktabellen nicht über Befehle der SQL Data Manipulation Language (DML), also INSERT, UPDATE und DELETE, erlaubt, sondern nur per Stored Procedure. Das Unterbinden des direkten Tabellenzugangs mit solchen Ad-hoc-Befehlen geschieht vor dem Hintergrund, dass die Ausführung beliebiger, gegebenenfalls ungültiger beziehungsweise inkonsistenter Datenänderungen durch Client-Anwendungen verhindert werden soll. Die Stored Procedures bilden eine zusätzliche Schutzschicht für die Daten. Der Einsatz von (gut geschriebenen) Stored Procedures kann zudem den Datenbankzugriff beschleunigen und erlaubt, Aktionen (etwa Soft Delete) im Datenbankmanagementsystem zu kapseln.
Das Laden von Datensätzen per Stored Procedure ist sowohl im klassischen ADO.NET Entity Framework als auch im modernen Entity Framework Core jeweils seit Version 1.0 möglich (siehe dazu [1]). In diesem Beitrag geht es nur um den Stored-Procedure-Aufruf beim Einfügen, Ändern und Löschen (englisch: CREATE, UPDATE, DELETE, kurz CUD).
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