Ich frage mich, wie ich meine Repositories gruppieren sollte? Wie aus den Beispielen, die ich auf der asp.net mvc gesehen und in meinen Büchern verwenden sie im Grunde ein Repository pro Datenbanktabelle. Aber das scheint wie eine Menge von Repositories führen Sie zu haben, rufen Sie viele Repositories später für Mocking und Zeug.
Ich denke also, ich sollte sie gruppieren. Ich bin mir jedoch nicht sicher, wie ich sie gruppieren soll.
Momentan habe ich ein Registrierungs-Repository erstellt, um alle meine Registrierungsdaten zu verwalten. Allerdings gibt es etwa 4 Tabellen, die ich aktualisieren muss, und bevor ich 3 Repositories hatte, um dies zu tun.
Eine der Tabellen ist zum Beispiel eine Lizenztabelle. Wenn sie sich registrieren, schaue ich mir ihren Schlüssel an und prüfe, ob er in der Datenbank vorhanden ist. Was passiert nun, wenn ich diesen Lizenzschlüssel oder etwas anderes aus dieser Tabelle an einem anderen Ort als der Registrierung überprüfen muss?
Ein Punkt könnte die Anmeldung sein (prüfen, ob der Schlüssel nicht abgelaufen ist).
Was würde ich also in dieser Situation tun? Den Code noch einmal neu schreiben (DRY brechen)? Versuchen, diese 2 Repositories zusammenzuführen und hoffen, dass keine der Methoden zu einem anderen Zeitpunkt benötigt wird (z. B. könnte ich eine Methode haben, die prüft, ob userName verwendet wird - vielleicht brauche ich das an anderer Stelle).
Auch wenn ich sie zusammen verschmelzen würde ich entweder 2 Service-Schichten, die auf das gleiche Repository gehen, da ich denke, mit der ganzen Logik für 2 verschiedene Teile einer Website wäre lang und ich müsste Namen wie ValidateLogin(), ValdiateRegistrationForm(), ValdiateLoginRetrievePassword() und etc. haben.
Oder das Repository trotzdem anrufen und einfach einen seltsam klingenden Namen verwenden?
Es scheint schwer zu sein, ein Repository zu erstellen, dessen Name allgemein genug ist, so dass man es für viele Bereiche der Anwendung verwenden kann und es trotzdem Sinn macht, und ich glaube nicht, dass der Aufruf eines anderen Repositorys in einem Repository eine gute Praxis wäre.