Quelle: dotnetpro
Datensatzänderungen bei Entity Framework Core nachvollziehbar machen 17.06.2024, 00:00 Uhr

Big Brother

Trigger und temporale Tabellen können zeigen, welcher Benutzer wann welche Datensatzänderungen in einer relationalen Datenbanktabelle vorgenommen hat.
Wir reden hier jetzt bitte nicht über die Datenschutz-Grundverordnung und über Betriebsräte. Stattdessen stellen wir uns einfach mal vor, dass diese rechtlichen Aspekte im Unternehmen alle einwandfrei geklärt sind für Datenbanktabellen, deren Inhalt so wichtig ist, dass wir eben zwingend nachvollziehen können müssen, wer wann Datensätze eingefügt oder geändert hat.
Temporale Tabellen waren schon das Thema in der Ausgabe 1/2022 dieser dotnetpro-Kolumne [1]. Kurz zusammengefasst: Temporale Tabellen, die seit Version 2011 Teil des SQL-Standards (ISO/IEC 9075:2011) sind, speichern frühere Zustände von Datensätzen ab. Einige moderne Datenbankmanagementsysteme wie Oracle, DB2, MySQL, MariaDB und Microsoft SQL Server sowie SQL Azure bieten temporale Tabellen an. Entity Framework Core bietet dafür eine Unterstützung seit Version 6.0. Man kann temporale Tabellen via Forward Engineering anlegen (via IsTemporal() im Fluent-API in OnModelCreating()) und mit LINQ-Operatoren wie TemporalAsOf(), TemporalAll(), TemporalBetween(), TemporalFromTo() und TemporalContainedIn() abfragen. Natürlich kann man auch direkt SQL damit verwenden.

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