GlobalRepository est un référentiel "générique" qui remplace tous les référentiels de votre projet, de cette façon vous n'aurez besoin que d'utiliser un seul et unique référentiel, ce qui signifie maintenir un seul référentiel. Avec GlobalRepository, vous n'avez pas besoin de créer un nouveau référentiel pour chaque modèle et de définir des méthodes ! il suffit de l'ajouter et de l'utiliser.
Veuillez noter :
Je l'ai appelé référentiel GLOBAL et non GÉNÉRIQUE car l'objectif est d'utiliser un seul référentiel pour tous les modèles, ce qui veut dire : appelez-le GLOBALEMENT dans votre projet, dans ce cas vous éviterez des tonnes de code (bien sûr vous êtes libre de le modifier et de l'implémenter comme un référentiel GÉNÉRIQUE normal)
Les méthodes renvoient IQueryable, ce qui offre le plus de flexibilité et permet une interrogation efficace par opposition au filtrage en mémoire, etc., et pourrait réduire le besoin de créer une tonne de méthodes de récupération de données spécifiques. D’un autre côté, vous avez désormais donné un fusil de chasse à vos utilisateurs. Ils peuvent faire des choses que vous n'aviez peut-être pas prévues (abuser de .include(), effectuer des requêtes lourdes et effectuer un filtrage en mémoire dans leurs implémentations respectives, etc.), ce qui contournerait essentiellement les contrôles de superposition et de comportement parce que vous avez donné accès complet. Veuillez donc, avant utilisation, prendre en considération l'équipe, son expérience, la taille de l'application, la superposition globale et l'architecture...
Ce référentiel contient également : SmartDeletersService qui vérifie dans la base de données chaque fois qu'une entité est utilisée par d'autres entités, les méthodes renvoient True si elles trouvent cela, sinon elles renvoient False.
GlobalRepository fonctionne n'importe où, téléchargez simplement les fichiers, ajoutez-les à votre projet et bon usage :D
n'oubliez pas :
PS : pour fonctionner correctement, vos modèles doivent étendre BaseEntity, j'ai ajouté un fichier pour que vous puissiez voir à quoi ressemble BaseEntity (pour les débutants)
Si vous avez besoin de quelque chose, contactez-moi à : [email protected]