Где разместить DTO <==> Entity переводчик в сервисе WCF?

У меня есть следующий дизайн: Мой дизайн Мой дизайн http://s15.postimg.org/3zha8rzqh/Design_Idea.png

У меня будет класс под названием «ProductDTO» в моемservice layer (левый сервис).

Когда «Обновить продукт (ProductDTO)» контракт на эксплуатацию называется - он должен называть «Обновление продукта»; функция вBusiness Logic Layer.

В базе данных ('Data Access Layer') существует объект под названием «Product», и, поскольку я использую LINQ-To-Entities, у меня также будет там класс под названием «Product».

У меня вопрос - куда мне переводить с «ProductDTO»? к «продукту» ?

Должен ли я иметь «Translate_ProductDTO_To_Product» функция вservice layer ? It seems the most logic answer, because that is the only layer that knows what 'ProductDTO' is.

Но это означает, чтоservice layer также нужно будет знать, что такое «продукт»; и, следовательно, придется ссылаться наdata access layer сборок.

Это правильно ?

Я думал, чтоservice layer следует ссылаться только наbusiness logic layerи чтоbusiness logic layer следует ссылаться только наdata access layerи что сервисный уровень не должен ничего знать о DAL.

Ответы на вопрос(2)

Ваш ответ на вопрос