我正在做一个.NET解决方案,我必须对此进行架构设计。所以我的架构如下所示。
这里DLL将通过访问DB发送数据。然后,服务层将使用这些存储库(例如UserRepository等)并按我想要发送给控制器的方式处理数据。在这种情况下,控制器会将ViewModels返回到视图。 所以我想知道的是,当将数据映射到ViewModels时,我的服务层应该进行映射并将ViewModels返回到Controller吗? 要么 服务层作为模型返回,在控制器中我们进行映射并创建视图模型?
我感觉在控制器中进行如此多的操作并不好。所以我的服务应该返回ViewModels,所以控制器的工作量减少了。
我想听听最佳做法和想法
答案 0 :(得分:1)
我会在控制器中进行映射。因为可能存在某些实例,所以我们需要将相同的服务输出映射到不同的视图模型。否则,我们必须为每种视图模型类型编写多种服务方法。 您可以使用AutoMapper简化映射。
答案 1 :(得分:0)
看看Where should I put automapper code?问题。
建议在服务层中使用Automapper。
此外,配置映射是一种静态方法,仅调用一次,因此不会对性能造成太大影响:official getting started。
最后,这是设置的更多说明:SO answer