Im Bereich der Datenpersistenz ist es gängige Praxis, eine vorläufige Löschung zu implementieren, sodass Datensätze ohne tatsächliches Löschen „gelöscht“ werden können wird aus der Datenbank entfernt. Um dies mit Entity Framework (EF) zu erreichen, muss die SaveChanges-Methode im DbContext angepasst werden.
Um die Frage des Herausfilterns vorläufig gelöschter Entitäten beim Abrufen von Daten zu beantworten, können wir eine leistungsstarke Bibliothek namens EntityFramework.DynamicFilters nutzen.
EntityFramework.DynamicFilters ermöglicht die Erstellung globaler Filter, die automatisch angewendet werden, wenn Abfragen ausgeführt werden, auch auf Navigationseigenschaften. Um die Filterung für vorläufig gelöschte Entitäten zu implementieren, führen Sie die folgenden Schritte aus:
modelBuilder.Filter("IsDeleted", (ISoftDelete d) => d.IsDeleted, false);
Dieser Filter fügt eine WHERE-Klausel ein Alle Abfragen, die auf Entitäten abzielen, die die ISoftDelete-Schnittstelle implementieren, und prüfen, ob IsDeleted wahr ist. Wenn Sie den Parameter „filterEnabled“ auf „false“ setzen, wird der Filter nur auf Abrufvorgänge angewendet.
Beim Ausführen einer Abfrage für einen Entitätstyp, der mit der ISoftDelete-Schnittstelle markiert ist, wird EntityFramework.DynamicFilters dies automatisch tun Filtern Sie alle Entitäten heraus, bei denen IsDeleted wahr ist. Dadurch können Sie Daten abrufen, ohne zusätzliche Filterkriterien manuell angeben zu müssen.
Das obige ist der detaillierte Inhalt vonWie kann EntityFramework.DynamicFilters dabei helfen, vorläufig gelöschte Entitäten zu filtern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!