我们使用 Telerik ORM 来生成我们的领域模型,并将它们放在一个名为 DAL 的类库中。然后我们有我们的 UI 项目,它是一个 MVC 4 Web 应用程序。在这方面,我们有存储库和模型。这里的模型是视图模型,专门用于在视图上显示数据。
现在我的问题是:
- 存储库是否应该直接返回视图模型?
- 视图模型是否应该转换为实体?
- 使用自动映射器有什么开销?应该在哪里使用?
如果我们不使用 automapper 转换为存储库中的视图模型,我们可能会对 db 进行不同的调用来填充对象的每个部分。页面的视图模型可能具有联系人列表和选定的联系人。选定的联系人将填充一个对存储库的调用,而联系人列表将填充另一个调用。此外,如果映射器处于存储库级别,如果我们只对“名称和 ID”感兴趣,那么删除所有“额外字段”(如性别)不是更好吗?
我听说存储库不应该返回视图模型,因为视图模型是特定于 UI 的,不应该参与数据层。这是真的?