Ich erstelle RESTful-Dienste für mehrere Datenbankelemente basierend auf einer modifizierten Version der BISDM. Einige dieser Einheiten Lookup-Tabellen verknüpft haben, wie unten dargestellt:Bei der Implementierung des Repository-Muster sollte Lookup-Wert/Tabellen ihr eigenes Repository bekommen?
Ich habe beschlossen, die Repository-Muster zu verwenden, um eine saubere Trennung zwischen Daten persistance/Abruf zur Verfügung zu stellen; Ich bin mir jedoch nicht sicher, wie Lookups (im Gegensatz zu Entitäten) im Repository dargestellt werden sollten.
Sollten Lookups ihre eigene Repository-Schnittstelle erhalten, "eins" mit der zugehörigen Entität teilen oder sollte es eine generische ILookupRepository-Schnittstelle geben?
Momentan sind diese Suchvorgänge schreibgeschützt. Es wird jedoch eine Zeit geben, in der wir die Suchvorgänge möglicherweise über Dienste bearbeiten möchten.
Option 1:
ISpaceRepository.GetSpaceCategoryById(string id);
Option 2:
ISpaceCategoryRepository.GetById(string id);
Option 3:
ILookupRepository.GetSpaceCategoryById(string id);
Im übrigen ist diese Frage zu einem anderen Zusammenhang look-up tables & RESTful web services in Bezug auf.
Mit diesem Ansatz, UpdateSpaceCategory (SpaceCategory spaceCategory) und DeleteSpaceCategory (String-ID) wäre auch in der ISpaceRepository auch, richtig? –
Sicher. Der Zweck des Repository besteht darin, den zugrunde liegenden Datenzugriff zu verbergen. Wenn Sie Ihre Datenbankebene wechseln würden, würde der Rest Ihres Programms immer noch GetCategories() oder UpdateCategory() für das Repository aufrufen - die Änderung wäre für den Repository-Consumer transparent. – womp