Wo kann der DTO <==> Entity-Übersetzer im WCF-Dienst platziert werden?

Ich habe folgendes Design:Mein Design Mein Design http://s15.postimg.org/3zha8rzqh/Design_Idea.png

Ich werde eine Klasse namens "ProductDTO" in meinem habenService-Schicht (der linke Dienst).

Wenn der Operationsvertrag 'Update Product (ProductDTO)' aufgerufen wird, sollte die Funktion 'Update Product' in der aufgerufen werdenBusiness Logic Layer.

In der Datenbank (die"Datenzugriffsebene") Es gibt eine Entität namens 'Product'. Da ich LINQ-To-Entities verwende, habe ich dort auch eine Klasse namens 'Product'.

Meine Frage ist - wo übersetze ich von 'ProductDTO' nach 'Product'?

Sollte ich eine 'Translate_ProductDTO_To_Product'-Funktion in der haben?Service-Schicht ? Es scheint die logischste Antwort zu sein, da dies die einzige Ebene ist, die weiß, was 'ProductDTO' ist.

Dies bedeutet aber, dass dieService-Schicht müssen auch wissen, was "Produkt" ist, und müssen daher auf dieDatenzugriffsschicht Versammlungen.

Ist das richtig ?

Ich dachte, dass dieService-Schicht soll nur die referenzGeschäftslogikschichtund dass dieGeschäftslogikschicht soll nur die referenzDatenzugriffsschicht, und dass die Service-Schicht nichts über die DAL wissen sollte.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage