Ich frage mich, wie ich meine Repositorys gruppieren soll. Wie aus den Beispielen, die ich auf dem asp.net mvc und in meinen Büchern gesehen habe, wird grundsätzlich ein Repository pro Datenbanktabelle verwendet. Aber das scheint eine Menge Repositories zu sein, die dazu führen, dass Sie später viele Repositories zum Verspotten und so weiter aufrufen müssen.
Also denke ich, ich sollte sie gruppieren. Ich bin mir jedoch nicht sicher, wie ich sie gruppieren soll.
Im Moment habe ich ein Registrierungs-Repository erstellt, um alle meine Registrierungsaufgaben zu erledigen. Es gibt jedoch ungefähr 4 Tabellen, die ich aktualisieren muss und bevor ich 3 Repositorys hatte, um dies zu tun.
Eine der Tabellen ist beispielsweise eine Lizenztabelle. Wenn sie sich registrieren, schaue ich auf ihren Schlüssel und überprüfe ihn, ob er in der Datenbank vorhanden ist. Was passiert nun, wenn ich diesen Lizenzschlüssel oder etwas anderes aus dieser Tabelle an einer anderen Stelle als der Registrierung überprüfen muss?
Ein Punkt könnte die Anmeldung sein (prüfen Sie, ob der Schlüssel nicht abgelaufen ist).
Was würde ich in dieser Situation tun? Code erneut umschreiben (DRY brechen)? Versuchen Sie, diese beiden Repositorys zusammenzufassen, und hoffen Sie, dass keine der Methoden zu einem anderen Zeitpunkt benötigt wird (z. B. könnte ich eine Methode haben, die überprüft, ob Benutzername verwendet wird - vielleicht brauche ich das woanders).
Auch wenn ich sie zusammenführe, würde ich entweder 2 Service-Layer benötigen, die in dasselbe Repository gehen, da ich denke, dass die gesamte Logik für 2 verschiedene Teile einer Site lang wäre und ich Namen wie ValidateLogin (), ValdiateRegistrationForm () haben müsste. , ValdiateLoginRetrievePassword () und etc.
Oder rufen Sie das Repository trotzdem an und haben Sie nur einen seltsam klingenden Namen?
Es scheint nur schwierig zu sein, ein Repository zu erstellen, dessen Name allgemein genug ist, damit Sie es für viele Stellen Ihrer Anwendung verwenden können und dennoch sinnvoll sind. Ich denke nicht, dass das Aufrufen eines anderen Repositorys in einem Repository eine gute Vorgehensweise wäre.