Ich frage mich, wie sollte ich meine Repositories gruppieren? Wie von den Beispielen, die ich auf dem asp.net mvc und in meinen Büchern gesehen habe, benutzen sie grundsätzlich ein Ablagefach pro Datenbanktabelle. Aber das scheint eine Menge von Repositories zu sein, die dazu führen, dass man später viele Repositories aufrufen muss, um sich zu verspotten.Wie wird das Repository-Muster korrekt verwendet?
Also ich rate ich sollte sie gruppieren. Ich bin mir jedoch nicht sicher, wie ich sie gruppieren soll.
Im Moment habe ich ein Registrierungs-Repository, um alle meine Registrierungs-Zeug zu behandeln. Es gibt jedoch 4 Tabellen, die ich aktualisieren muss und bevor ich 3 Repositories dazu hatte.
Zum Beispiel ist eine der Tabellen eine Lizenztabelle. Wenn sie sich registrieren, schaue ich auf ihren Schlüssel und überprüfe, ob es in der Datenbank existiert. Was passiert jetzt, wenn ich diesen Lizenzschlüssel oder etwas anderes von dieser Tabelle an einer anderen Stelle als der Registrierung überprüfen muss?
Ein Punkt könnte Login (überprüfen Sie, ob der Schlüssel nicht abgelaufen ist).
Was also würde ich in dieser Situation tun? Schreiben Sie den Code erneut (DRY brechen)? Versuchen Sie, diese beiden Repositories zusammenzufassen und hoffen, dass keine der Methoden zu einem anderen Zeitpunkt benötigt wird (vielleicht habe ich eine Methode, die prüft, ob userName verwendet wird - vielleicht werde ich das woanders brauchen).
Auch wenn ich sie zusammenführe, würde ich entweder 2 Service-Schichten benötigen, die zum selben Repository gehen, da ich denke, dass die ganze Logik für 2 verschiedene Teile einer Site lang wäre und ich hätte Namen wie ValidateLogin() , ValdiateRegistrationForm(), ValdiateLoginRetrievePassword() und usw.
Oder rufen Sie das Repository anyway und haben nur einen seltsam klingenden Namen herum?
Es scheint nur schwer zu machen ein Repository, das einen allgemein genug Namen hat, so dass Sie es für viele Spots Ihrer Anwendung verwenden können und immer noch sinnvoll und ich denke nicht, ein anderes Repository in einem Repository aufrufen wäre eine gute Praxis ?
+1. Große Frage. – griegs
Danke, dass es mich schon seit einiger Zeit nervt. Da ich finde, dass die, die ich in dem Buch gesehen habe, zu einfach sind, zeigen sie dir nicht, was in diesen Situationen zu tun ist. – chobo2
Ich mache im Grunde das gleiche wie Sie und ja, wenn ich eine linq2sql-Klasse habe, die in mehr als 1 Repository verwendet wird, und ich die Tabellenstruktur ändern muss, brechen ich DRY. Weniger als ideal. Ich plane es jetzt ein wenig besser, also brauche ich nicht mehr als einmal eine linq2sql-Klasse, was eine gute Trennung von Sorgen ist, aber ich sehe einen Tag voraus, an dem das ein echtes Problem für mich sein wird. – griegs