Je réfléchis à la refactorisation d'un référentiel Je dois améliorer sa flexibilité et réduire le nombre de méthodes.Référentiel prenant l'expression linq pour le filtrage
Lorsqu'il existe des méthodes suivantes:
Collection GetAllUsersByRole(Role role)
User GetUserByuserName(string userName)
... Je voudrais avoir une seule méthode prenant une expression Linq:
ICollection GetUsers(Expression e)
{
//retrieve user collection from store
//apply expression to collection and return
}
Est-ce une approche raisonnable? Vraisemblablement, je perdrais de l'efficacité parce que la collection complète d'utilisateurs devrait être récupérée et filtrée à chaque fois, plutôt que de récupérer un sous-ensemble d'utilisateurs selon des critères codés en dur.
Modifier: NHibernate fournit ORM dans ma mise en œuvre.
"La méthode la plus simple consiste à mettre tous les objets en mémoire, puis à les filtrer avec l'expression de prédicat." C'est un très bon point, cette classe peut juste être un traducteur à l'autre logique, mais réduit le nombre de méthodes exposées. –