¿Dónde colocar el traductor DTO <==> entidad en el servicio WCF?

Tengo el siguiente diseño:Mi diseño Mi diseño http://s15.postimg.org/3zha8rzqh/Design_Idea.png

Tendré una clase llamada 'ProductDTO' en micapa de servicio (El servicio de la izquierda).

Cuando se llama al contrato de operación 'Actualizar producto (ProductDTO)', debe llamar a la función 'Actualizar producto' en elCapa de logica de negocios.

En la base de datos (la'Capa de acceso a datos') hay una entidad llamada "Producto", y como uso LINQ-To-Entities, también tendré una clase llamada "Producto".

Mi pregunta es: ¿dónde traduzco de 'ProductDTO' a 'Product'?

¿Debo tener una función 'Translate_ProductDTO_To_Product' en elcapa de servicio ? Parece la respuesta más lógica, porque esa es la única capa que sabe qué es 'ProductDTO'.

Pero esto significa que lacapa de servicio También tendrá que saber qué es el 'Producto', y por lo tanto tendrá que hacer referencia alcapa de acceso a datos asambleas.

Es esto correcto ?

Pensé que elcapa de servicio sólo debe hacer referencia a lacapa de lógica de negocios, y que elcapa de lógica de negocios sólo debe hacer referencia a lacapa de acceso a datos, y que la capa de servicio no debe saber nada sobre el DAL.

Respuestas a la pregunta(2)

Su respuesta a la pregunta