Maison > développement back-end > C++ > Comment EntityFramework.DynamicFilters peut-il aider à filtrer les entités supprimées de manière logicielle ?

Comment EntityFramework.DynamicFilters peut-il aider à filtrer les entités supprimées de manière logicielle ?

Mary-Kate Olsen
Libérer: 2025-01-04 15:52:40
original
238 Les gens l'ont consulté

How Can EntityFramework.DynamicFilters Help Filter Soft-Deleted Entities?

Filtrage des entités supprimées de manière logicielle avec Entity Framework

Dans le domaine de la persistance des données, il est courant de mettre en œuvre une suppression logicielle, permettant de « supprimer » des enregistrements sans réellement étant supprimé de la base de données. Avec Entity Framework (EF), pour y parvenir, il faut personnaliser la méthode SaveChanges dans DbContext.

Pour répondre à la question du filtrage des entités supprimées de manière logicielle lors de la récupération de données, nous pouvons exploiter une puissante bibliothèque appelée EntityFramework.DynamicFilters.

Utiliser EntityFramework.DynamicFilters

EntityFramework.DynamicFilters permet la création de filtres globaux qui sont automatiquement appliqués lors de l'exécution de requêtes, y compris sur les propriétés de navigation. Pour implémenter le filtrage des entités supprimées de manière réversible, procédez comme suit :

  1. Installez le package NuGet EntityFramework.DynamicFilters.
  2. Dans la méthode OnModelCreating de votre DbContext, définissez le filtre à l'aide de la syntaxe suivante :
modelBuilder.Filter("IsDeleted", (ISoftDelete d) => d.IsDeleted, false);
Copier après la connexion

Ce filtre injectera une clause WHERE dans toute requête ciblant les entités qui implémentent l’interface ISoftDelete et vérifie si IsDeleted est vrai. En définissant le paramètre filterEnabled sur false, le filtre ne sera appliqué qu'aux opérations de récupération.

Résultat

Lors de l'exécution d'une requête sur un type d'entité marqué avec l'interface ISoftDelete, EntityFramework.DynamicFilters va automatiquement filtrer toutes les entités où IsDeleted est vrai. Cela vous permet de récupérer des données sans spécifier manuellement de critères de filtrage supplémentaires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal