我的mvc3项目有以下图层。
控制器 - >服务 - >库中。
我需要将ViewModel映射到Entity,不确定哪个层是放入代码的正确层。
我知道它的控制器或服务,请告诉我应该使用哪一个,如果可以,请告诉我原因。
谢谢。答案 0 :(得分:10)
我需要将ViewModel映射到Entity,不确定哪个层是放入代码的正确层。
控制器当然。服务和存储库层不知道视图模型的含义。他们只操纵领域模型。
因此,在控制器内部,您可以使用.Map<TSource, TDest>
调用在域模型和视图模型之间来回进行映射。但映射定义本身(.CreateMap<TSource, TDest>
调用)每个AppDomain生命周期执行一次,理想情况下在Profile
。
因此,让我们考虑RESTful术语中控制器操作中的几个典型工作流程
GET
(以RDBMS术语表示):
PUT
(以RDBMS术语插入):
DELETE
(以RDBMS术语删除)
POST
(以RDBMS术语更新):
.Map<TSource, TDest>
方法的以下void重载:Mapper.Map<ADomain, ViewModel>(domainInstanceControllerRetrievedUsingTheId, viewModelInstancePassedAsArgument);
有了这4个工作流程,您就可以为CRUD世界做好准备了。
P.S。 REST提醒:
Create = PUT
Retrieve = GET
Update = POST
Delete = DELETE