I have the following design : My Design My Design http://s15.postimg.org/3zha8rzqh/Design_Idea.png
I will have a class called \'ProductDTO\' in my service layer<
It seems your confusion may stem from assuming the Product
class in your data layer is actually the Product
entity. Generally in domain driver design, your business entities live-in/are the business logic layer. Usually these class are "ignorant" of persistence which is the responsibility of the data access layer (typically using an object-relational mapper framework).
In practice, your service will require references to both to the domain model (business layer) and the data access layer to perform useful work. Both the WCF service code and the data access layer should depend on the domain model but the domain model should not have dependencies on either the data access layer or the WCF service code.
Map the DTO to your domain entities in your service layer. Your service layer needs to know about DTOs and the entities it is mapping to (and from). I strongly advise you use a tool like AutoMapper to do the mapping rather than hand-crafting. Your service layer should not reference your DA layer (or assembly). Your BL later will need to reference your DA layer to persist the entities. Edit: Your business entites probably should not be under a DA namespace. If you are using an ORM tool to generate them, make sure you put any DDD logic in the other half of a partial class.