Gdzie umieścić DTO <==> tłumacz Entity w usłudze WCF?

Mam następujący projekt:Mój projekt My Design http://s15.postimg.org/3zha8rzqh/Design_Idea.png

Będę miał w klasie klasę „ProductDTO”warstwa usług (lewa usługa).

Kiedy wywoływana jest umowa o pracę „Update Product (ProductDTO)” - powinna wywołać funkcję „Update Product” wWarstwa logiki biznesowej.

W bazie danych („Warstwa dostępu do danych”) istnieje jednostka zwana „Produktem”, a ponieważ używam LINQ-To-Entities, będę miał także klasę o nazwie „Product”.

Moje pytanie brzmi - gdzie mam przetłumaczyć „ProductDTO” na „Product”?

Czy powinienem mieć funkcję „Translate_ProductDTO_To_Product” wwarstwa usług ? Wydaje się, że jest to najbardziej logiczna odpowiedź, ponieważ jest to jedyna warstwa, która wie, czym jest „ProductDTO”.

Ale to oznacza, żewarstwa usług będzie również musiał wiedzieć, czym jest „Produkt”, a zatem będzie musiał odwołać się dowarstwa dostępu do danych zespoły.

Czy to jest poprawne ?

Myślałem, żewarstwa usług powinien odnosić się tylko dowarstwa logiki biznesowej, i żewarstwa logiki biznesowej powinien odnosić się tylko dowarstwa dostępu do danychi że warstwa usług nie powinna wiedzieć nic o DAL.

questionAnswers(2)

yourAnswerToTheQuestion