Je viens de devoir désactiver un ORM et c'était une tâche relativement intimidante, car la logique de requête fuyait partout. Si j'avais déjà eu à développer une nouvelle application, ma préférence personnelle serait d'encapsuler toute la logique de requête (à l'aide d'un ORM) pour la protéger du changement. Le modèle de référentiel est assez gênant à coder et à maintenir, donc je me demandais s'il y avait d'autres modèles pour résoudre le problème?
Je peux prévoir des articles sur le fait de ne pas ajouter de complexité supplémentaire avant qu'elle ne soit réellement nécessaire, d'être agile, etc. mais je ne suis intéressé que par les modèles existants qui résolvent un problème similaire de manière plus simple.
Ma première pensée a été d'avoir un référentiel de type générique, auquel j'ajoute des méthodes selon les besoins à des classes de référentiels de type spécifiques via des méthodes d'extension, mais les tests unitaires des méthodes statiques sont terriblement douloureux. C'EST À DIRE:
public static class PersonExtensions
{
public static IEnumerable<Person> GetRetiredPeople(this IRepository<Person> personRep)
{
// logic
}
}