Automatische Filterung vorläufig gelöschter Entitäten im Entity Framework
Bei der Arbeit mit Entity Framework-Code Erstens ist „vorläufiges Löschen“ eine gängige Praxis ermöglicht es, Entitäten als gelöscht zu markieren, ohne sie tatsächlich aus der Datenbank zu entfernen. Dieser Ansatz behält historische Daten bei und schließt gleichzeitig inaktive Entitäten logisch aus Abfragen aus.
Um ein sanftes Löschen zu erreichen, kann benutzerdefinierte Logik in der SaveChanges-Methode von DbContext implementiert werden, wie in der Frage gezeigt. Dadurch wird sichergestellt, dass Entitäten die ISoftDelete-Schnittstelle implementieren und über die Methode „Delete“ verfügen, um sie als gelöscht zu markieren.
Automatisierung des Abrufs vorläufig gelöschter Entitäten
Die Frage ist jedoch weiter fragt, wie vorläufig gelöschte Entitäten beim Abrufen von Daten automatisch ignoriert werden können. Die Lösung liegt in der Verwendung von Entity Framework Dynamic Filters, einer Bibliothek, die eine elegante Möglichkeit bietet, globale Filter zu erstellen, die automatisch auf alle relevanten Abfragen angewendet werden.
Implementierung von EntityFramework.DynamicFilters
Um diese Funktionalität zu implementieren, befolgen Sie diese Schritte:
Zum Beispiel für ein „IsDeleted“ Filter:
modelBuilder.Filter("IsDeleted", (ISoftDelete d) => d.IsDeleted, false);
Verwendung
Sobald der Filter definiert ist, enthalten alle Abfragen an Entitäten, die die ISoftDelete-Schnittstelle implementieren, automatisch die Where-Klausel „where IsDeleted = false“. . Dadurch wird sichergestellt, dass vorläufig gelöschte Entitäten transparent und ohne zusätzlichen Code aus den Ergebnismengen ausgeschlossen werden.
Hinweis
Die von EntityFramework.DynamicFilters bereitgestellte Filtermethode unterstützt komplexe Filterbedingungen und kann auch auf Navigationseigenschaften angewendet werden. Durch die Verwendung dieser Bibliothek können Entwickler den Datenabruf vereinfachen und gleichzeitig die Flexibilität des weichen Löschens beibehalten.
Das obige ist der detaillierte Inhalt vonWie kann ich vorläufig gelöschte Entitäten im Entity Framework automatisch herausfiltern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!