我的 mvc3 项目有以下几层。
控制器 -> 服务 -> 存储库。
我需要将 ViewModel 映射到 Entity,不确定哪一层是放置代码的正确层。
我知道它的控制器或服务,请让我知道我应该使用哪一个,如果可以请告诉我原因。
谢谢你。
我的 mvc3 项目有以下几层。
控制器 -> 服务 -> 存储库。
我需要将 ViewModel 映射到 Entity,不确定哪一层是放置代码的正确层。
我知道它的控制器或服务,请让我知道我应该使用哪一个,如果可以请告诉我原因。
谢谢你。
我需要将 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 世界了。
PS 一个 REST 提醒:
Create = PUT
Retrieve = GET
Update = POST
Delete = DELETE