Pat*_*ick 27 asp.net-mvc entity-framework dto viewmodel automapper
在具有域层(DL)/业务(服务)层(BL)/表示层(PL)的多层项目中,将实体传递到表示层的最佳方法是什么?
DO => Domain Object;
DTO = Domain Transfer Object;
VM => View Model;
V => View;
Run Code Online (Sandbox Code Playgroud)
选项1:
DL => DO => BL => DTO => PL => VM => V
Run Code Online (Sandbox Code Playgroud)
这个选项似乎是最佳实践,但似乎也很重要.
选项2:
DL => DO => BL => DTO => PL => V
Run Code Online (Sandbox Code Playgroud)
这个选项似乎不是很好的练习,但由于DTO与VM几乎完全相同,我们可以将它直接传递给View,实现和保护它不那么痛苦.
这个选项对于多个布局也是可靠的吗,例如,对于移动设备,我可能需要来自BL的较少信息,因此我需要为这个特定布局使用不同的VM?
Max*_*oro 10
将DTO传递给视图是可以的.如果您需要更改或增强DTO,请创建ViewModel.常见的情况是添加链接.ViewModel也可以将DTO引用为复杂属性.
如果您将有不同的视图,需要 Dto 中的不同数据,那么听起来您可能会受益于为这些视图提供不同的视图模型并将 Dto 映射到这些模型。
其背后的想法之一是允许更大的自由度来更改视图模型,因为知道它不会对应用程序的任何其他部分产生影响。如果您的 Dto 在多个视图中使用,那么对 Dto 的每次更改都需要您测试每个视图。
| 归档时间: |
|
| 查看次数: |
12887 次 |
| 最近记录: |