GlobalRepository ist ein „generisches“ Repository, das alle Repositorys in Ihrem Projekt ersetzt. Auf diese Weise müssen Sie nur ein einziges Repository verwenden, was bedeutet, dass Sie ein Repository verwalten müssen. Mit GlobalRepository müssen Sie nicht für jedes Modell ein neues Repository erstellen und Methoden definieren! einfach hinzufügen und verwenden.
Bitte beachten Sie :
Ich habe es GLOBAL-Repository und nicht GENERIC genannt, weil das Ziel darin besteht, ein Repository für alle Modelle zu verwenden, was bedeutet: Nennen Sie es in Ihrem Projekt GLOBAL. In diesem Fall vermeiden Sie Tonnen von Code (natürlich steht es Ihnen frei, ihn zu ändern und zu implementieren). es wie ein normales GENERIC-Repository)
Die Methoden geben IQueryable zurück, was die größte Flexibilität bietet und eine effiziente Abfrage im Gegensatz zu In-Memory-Filterung usw. ermöglicht und die Notwendigkeit reduzieren könnte, eine Menge spezifischer Datenabrufmethoden zu erstellen. Andererseits haben Sie Ihren Benutzern jetzt eine Schrotflinte gegeben. Sie können Dinge tun, die Sie möglicherweise nicht beabsichtigt haben (übermäßige Verwendung von .include(), umfangreiche Abfragen und In-Memory-Filterung in ihren jeweiligen Implementierungen usw.), was im Grunde die von Ihnen gegebenen Ebenen- und Verhaltenskontrollen umgehen würde voller Zugriff. Berücksichtigen Sie daher vor der Verwendung bitte das Team, seine Erfahrung, die Größe der App, die Gesamtschichtung und Architektur ...
Dieses Repository enthält außerdem: SmartDeletersService, der die Datenbank überprüft, wenn eine Entität von anderen Entitäten verwendet wird. Die Methoden geben „True“ zurück, wenn sie dies finden, andernfalls geben sie „False“ zurück.
GlobalRepository funktioniert überall, laden Sie einfach die Dateien herunter, fügen Sie sie Ihrem Projekt hinzu und verwenden Sie sie gerne :D
Bitte denken Sie daran:
PS: Um richtig zu funktionieren, müssen Ihre Modelle BaseEntity erweitern. Ich habe eine Datei hinzugefügt, damit Sie sehen können, wie BaseEntity aussieht (für Neulinge).
Wenn Sie etwas benötigen, kontaktieren Sie mich bitte unter: [email protected]