【发布时间】:2011-06-03 19:21:16
【问题描述】:
哪一层应该包含 AutoMapper 配置?
AutoMapper 用于将 ViewModel 映射到我的域实体。
我的应用中有三层:域、UI (MVC)、基础设施。
【问题讨论】:
标签: c# .net automapper n-tier-architecture
哪一层应该包含 AutoMapper 配置?
AutoMapper 用于将 ViewModel 映射到我的域实体。
我的应用中有三层:域、UI (MVC)、基础设施。
【问题讨论】:
标签: c# .net automapper n-tier-architecture
它应该位于它正在转换的最顶层。
如果您在域和基础设施之间有映射器,那么它们应该存在于域中(假设使用基础设施)。
如果您在 UI 和域之间有映射器,那么它们应该存在于 UI 中(假设使用域)。
这意味着较低的层不知道或需要知道较高的层。
【讨论】:
将视图模型映射到域模型的地方通常是 MVC 架构中的控制器。现在你还没有对你的架构说太多,“UI”和“Infra”也不是很具体。
不过,基本上,您只能在 DomainModel 和 ViewModel 都知道的地方调用 AutoMapper 配置。由于基础架构不应该依赖于 ViewModel,因此您应该映射到 ViewModel(无论如何都依赖于领域模型)或 UI 层(这将是 MVC 中的控制器)。
【讨论】: