Filtrage des entités supprimées de manière logicielle dans Entity Framework
Lors de l'utilisation d'Entity Framework Code First avec une approche de « suppression logicielle », récupérer les entités tout en les excluant marqué comme supprimé de manière logicielle nécessite une solution sur mesure.
Une méthode pour relever ce défi consiste à tirer parti EntityFramework.DynamicFilters. Cette bibliothèque étend Entity Framework en permettant la création de filtres globaux qui peuvent être appliqués automatiquement lors de l'exécution de la requête.
En remplaçant la méthode SaveChanges dans votre DbContext, les suppressions logicielles peuvent être mises en œuvre efficacement. De plus, vous pouvez utiliser la bibliothèque DynamicFilters pour définir un filtre global basé sur une interface comme ISoftDelete. Cela permet l'exclusion transparente des entités supprimées de manière logicielle lors de la récupération.
Pour y parvenir, incluez simplement la ligne suivante dans votre méthode DbContext.OnModelCreating() :
modelBuilder.Filter("IsDeleted", (ISoftDelete d) => d.IsDeleted, false);
Ce filtre sera automatiquement injectez une clause Where dans toute requête sur les entités qui implémentent ISoftDelete, garantissant que les entités supprimées de manière logicielle sont exclues.
En utilisant cette approche, vous pouvez facilement filtrer les entités supprimées de manière logicielle dans Entity Framework, offrant ainsi une expérience de récupération de données plus rationalisée et plus efficace.
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!