Wie kann ich das Repository-Muster richtig verwenden?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie kann ich das Repository-Muster richtig verwenden?

Post by Anonymous »

Ich frage mich, wie ich meine Repositorys gruppieren soll. Wie aus den Beispielen, die ich auf der ASP.NET MVC gesehen habe, und in meinen Büchern wird grundsätzlich ein Repository pro Datenbanktabelle verwendet. Aber das scheint eine Menge Repositories zu sein, die dazu führen, dass man später viele Repositories zum Verspotten usw. aufrufen muss.
Ich schätze also, ich sollte sie gruppieren. Allerdings bin ich mir nicht sicher, wie ich sie gruppieren soll.
Im Moment habe ich ein Registrierungs-Repository erstellt, um alle meine Registrierungsaufgaben zu verwalten. Es gibt jedoch ungefähr vier Tabellen, die ich aktualisieren muss, und zuvor hatte ich drei Repositorys, um dies zu tun.
Beispielsweise ist eine der Tabellen eine Lizenztabelle. Wenn sie sich registrieren, schaue ich mir ihren Schlüssel an und überprüfe, 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?
Eine Stelle könnte die Anmeldung sein (überprüfen Sie, ob der Schlüssel nicht abgelaufen ist).
Was würde ich also in dieser Situation tun? Den Code erneut umschreiben (DRY brechen)? Versuchen Sie, diese beiden Repositorys zusammenzuführen, und hoffen Sie, dass keine der Methoden zu einem anderen Zeitpunkt benötigt wird (vielleicht habe ich vielleicht eine Methode, die prüft, ob Benutzername verwendet wird – vielleicht brauche ich das woanders).
Außerdem bräuchte ich, wenn ich sie zusammenführen würde, entweder zwei Serviceschichten, die zum selben Repository gehen, da ich denke, dass die gesamte Logik für zwei verschiedene Teile einer Site langwierig wäre und ich Namen wie ValidateLogin() haben müsste, ValdiateRegistrationForm(), ValdiateLoginRetrievePassword() usw.
Oder rufen Sie das Repository trotzdem auf und haben einfach einen seltsam klingenden Namen?
Es scheint einfach schwierig zu sein, ein Repository zu erstellen, dessen Name allgemein genug ist, damit Sie ihn für viele Stellen Ihrer Anwendung verwenden können und der trotzdem sinnvoll ist, und ich denke nicht, dass der Aufruf eines anderen Repositorys in einem Repository eine gute Vorgehensweise wäre?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post