2009-03-04 4 views
1

In meinen Repositorys erstelle ich aus den Linq Entity-Abfragen Zuordnungen zu meinen Domänenobjekten. Ich habe dann eine Service-Schicht, um auf diese Objekte zu reagieren, die aus den Repositories zurückgegeben werden.Repository, Entitätsobjekte und Domänenobjekte

Sollen meine Domain-Objekte so im Repository sein? Oder sollten meine Repositories auf die Entitäten und den Datenzugriff beschränkt sein, und stattdessen muss meine Dienstschicht den Domänenobjekten Zuweisungen erteilen?

Es ist einfacher, alle Zuweisungen im Repository auszuführen, aber jetzt ist die Unterscheidung zwischen meinen Datenbank- und Domänenobjekten nicht ersichtlich. Was ist hier richtig? tia

Antwort

2

IMO Wenn die App relativ einfach ist und Sie sich nicht vorstellen können, den Datenzugriff zu entfernen, gehen Sie voran und machen Sie die Asignments im Repository. Aber wenn Sie denken, dass die App in Zukunft komplizierter wird oder dass Sie den Datenzugriff ändern möchten, behalten Sie diese Funktionalität aus den Repositories.

Ich habe Apps mit Zuordnung in den Repositories und andere in der Service-Schicht und noch eine andere hatte ich eine separate Konvertierungsebene (es war nicht eine eins zu eins Konvertierung und die Objekte waren komplex).

Eine Sache, die über Best Practices zu erinnern ist, gibt es da zu helfen, wenn es Ding schwieriger macht, dann verwende es nicht.

2

Früher mochte ich es nicht. Aber jetzt schaue normalerweise nie zurück. Grundsätzlich gilt: Wenn Sie zu einer externen Datenquelle wechseln müssen, die anders strukturiert ist, können Sie mit der Implementierung des Repository-Codes ein neues Mapping einrichten und damit fertig werden.

Es geht um Datenzuordnung. Überprüfen Sie diesen Link: http://www.martinfowler.com/eaaCatalog/repository.html

Überprüfen Sie auch diese verwandte Frage: IRepository confusion on objects returned. Ich habe einen ähnlichen Mapper verwendet, aber ich habe ihn auf der IQueryable-Ebene betrieben, was dazu geführt hat, dass einige ziemlich interessante Sachen während der Arbeit mit dem Domain-Objekt nach dem Mapping gemacht wurden.

Verwandte Themen