2009-03-13 3 views

Antwort

2

Datenzuordnung. Sehen Sie es hier erwähnt http://www.martinfowler.com/eaaCatalog/repository.html

"In solchen Systemen kann es sich lohnen, eine weitere Abstraktionsebene über die Mapping-Schicht zu bauen, wo der Abfrage-Konstruktionscode konzentriert ist".

Beachten Sie, dass es verschiedene Ansichten gibt. Ich würde sagen, diejenigen, die das tun, behaupten, dass die linq2sql-Klassen spezifisch für die Datenzugriffstechnologie sind, also schätze ich, dass sie es als ein Implementierungsdetail des Repositories sehen.

Vielleicht wollen Sie nach einem Namen im "Repository" fragen, der ein IQueryable zurückgibt. Ich glaube nicht, dass es einen allgemein akzeptierten Namen für diesen gibt. Rob Connery verwendet dieses auf seiner asp.net mvc Storefront-Serie: http://blog.wekeroad.com/mvc-storefront. Wenn Sie sich die alten Blogposts ansehen, können Sie sehen, dass das Aufrufen eines Repositories tatsächlich umstritten ist.

+0

Es braucht etwas Klebstoff-Code, um LINQ zu SQL-Klassen (spezifisch für die Datenzugriffstechnologie meiner Ansicht nach) zu POCO's zuzuordnen. Ich glaube auch, dass seit IQueryable und Ausdruck Teil der BCL sind, werden sie mit der Zeit Teil der Entwurfsmuster (Repository und Spezifikation) werden. Danke! –

1

Ich denke, das ist mehr von der Data Transfer Object (DTO) -Muster, wo Ergebnisse in ein DTO für die Übertragung über mehrere Schichten umgewandelt werden. Siehe Data Transfer Object.

+0

@John nicht wirklich, mit dem zitierten Ansatz sind die zurückgegebenen Objekte die Domänenobjekte. – eglasius

+0

Sorry, ich verstehe nicht, welche "zitierte Vorgehensweise". Im Fall von DTO sind die Objekte keine Domänenobjekte, sondern DTO-Objekte, die die Daten zu oder von den Domänenobjekten übertragen. Ihre Struktur ähnelt den Domänenobjekten, aber sie haben kein Verhalten, nur Daten. –

+0

Ich meinte die Vorgehensweise, die michielvoo auf die Frage geschrieben hat. Im obigen Beispiel ist Post ein Domänenobjekt (kein DTO). Obwohl Sie vielleicht meinen, dass linq2sql Klassen das DTO sind? – eglasius

Verwandte Themen