我有以下设计: 我的设计 我的设计 http://s15.postimg.org/3zha8rzqh/Design_Idea.png
我将在我的服务层(左侧服务)中有一个名为“ProductDTO”的类。
当调用“更新产品(ProductDTO)”操作合约时 - 它应该调用业务逻辑层中的“更新产品”功能。
在数据库(“数据访问层”)中有一个名为“Product”的实体,因为我使用 LINQ-To-Entities,所以那里还有一个名为“Product”的类。
我的问题是 - 我在哪里从 'ProductDTO' 翻译成 'Product' ?
我应该在服务层中有一个“Translate_ProductDTO_To_Product”功能吗?这似乎是最合乎逻辑的答案,因为这是唯一知道“ProductDTO”是什么的层。
但这意味着服务层还必须知道“产品”是什么,因此必须引用数据访问层组件。
这个对吗 ?
我认为服务层应该只引用业务逻辑层,业务逻辑层应该只引用数据访问层,而服务层应该对DAL一无所知。