【发布时间】:2011-04-06 00:45:29
【问题描述】:
嗨
我有 2 个项目,一个用于我的存储库和服务层(数据项目),一个用于我的视图、控制器(webUI 项目)。
我正在使用自动映射器,并且我一直在控制器中进行所有映射。假设我有一个获取项目的请求。它会转到我的控制器,它会联系服务层,此时任何业务逻辑都会完成。
我通常会取回一个域模型,然后我会采用该模型并在控制器中自动将其映射为视图模型。然后将 View 模型发回。
这一直很好,因为我能够将我的 mvc 代码(我的 viewModel 等)保留在我的服务层之外。
但是有两种情况我需要使用 automapper 在服务层进行映射。
服务层中的这个映射太其他领域对象了,现在已经很小了(只有几个属性)。
我应该在我的服务层中进行映射吗?
如果是这样,我应该将这些映射放在哪里?现在我把它放在我的项目中,我的控制器在应用程序启动时注册。
因此,一种选择是将我的映射放在我放置映射的位置(在我的模型文件夹中的一个类中)。这样做的问题是,如果我将我的服务层弹出到另一个项目(比如移动设备)中,那么我必须重做所有映射,因为它不存在。
有什么想法吗?
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-3 automapper