Onde colocar DTO <==> Tradutor de entidade no serviço WCF?

Eu tenho o seguinte design:Meu design Meu design http://s15.postimg.org/3zha8rzqh/Design_Idea.png

Eu terei uma classe chamada 'ProductDTO' na minhacamada de serviço (o serviço da esquerda).

Quando o contrato de operação 'Atualizar Produto (ProductDTO)' é chamado - ele deve chamar a função 'Atualizar Produto' noCamada de lógica de negócios.

Na base de dados (o'Camada de acesso a dados') existe uma entidade chamada 'Produto', e como eu uso LINQ-To-Entities eu também terei uma classe chamada 'Product'.

Minha pergunta é: onde eu traduzo de 'ProductDTO' para 'Product'?

Devo ter uma função 'Translate_ProductDTO_To_Product' nocamada de serviço ? Parece a resposta mais lógica, porque essa é a única camada que sabe o que é 'ProductDTO'.

Mas isso significa que ocamada de serviço também terá que saber o que é "Produto" e, portanto, terá que fazer referência aocamada de acesso a dados montagens.

Isso está correto?

Eu pensei que ocamada de serviço deve referenciar apenascamada de lógica de negóciose que ocamada de lógica de negócios deve referenciar apenascamada de acesso a dadose que a camada de serviço não deve saber nada sobre o DAL.

questionAnswers(2)

yourAnswerToTheQuestion