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 Man­danten 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.

Diesen Artikel lesen Sie exklusiv als dotnetproPlus Abonnent

Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde
  • 2 Monate Gratis testen
  • Über 4.000 qualifizierte Fachartikel
  • Auf jedem Gerät verfügbar