Globale Abfragefilter in Entity Framework Core
13.11.2017, 00:00 Uhr
Durch die rosarote Brille
Bei jeder Datenbankabfrage wendet Entity Framework Core globale Filter automatisch an.
Ein schönes neues Merkmal in Entity Framework (EF) Core ab Version 2.0 sind globale Abfragefilter. Damit kann ein Entwickler zentral in der Methode OnModelCreating() Filterbedingungen definieren, die Entity Framework Core dann an jede LINQ-Abfrage, jede direkte SQL-Abfrage, jeden Aufruf einer Tabellenwertfunktion und auch an jede Nachladeoperation anhängt. Globale Filter sind zum Beispiel für die beiden folgenden Anwendungsfälle gut geeignet:
- Wenn die zugrunde liegende Tabelle mandantenfähig sein soll: Eine Datensatzspalte drückt aus, zu welchem Mandanten ein Datensatz gehört. Der globale Filter stellt dann sicher, dass jeder Mandant nur seine Daten sieht. Ohne globalen Filter müsste der Entwickler daran denken, die Abfrage des Mandanten in jeder Abfrage zu berücksichtigen.
- Bei „Soft Deletes“: Datensätze, die gelöscht werden, werden nicht wirklich gelöscht, sondern erhalten eine entsprechende Markierung. Ein globaler Filter stellt sicher, dass der Nutzer diese nicht sieht. Ohne globalen Filter müsste der Entwickler daran denken, die Abfrage „Geloescht = false“ in jeder Abfrage zu berücksichtigen.
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