|
|
1
3
这是DTO的已知问题。在这本书中描述的,否则是平庸的。 articule on MSDN . 换言之:DTO是最通用的N层数据访问模式,但它也需要大部分的工作。 您可以使用基于约定的映射来解决映射中的一些问题,例如 AutoMapper . 当涉及到类爆炸时,是否您使用的是过于扁平的数据结构? 这很难说清楚,因为DTO自然包含大量语义重复,结果证明它们根本不是逻辑重复。例如,即使您有语义相似的类型,如果其中一个是ViewModel,另一个是域对象,那么它们可能共享语义结构,但它们的职责却大不相同。 另一方面,如果你有很多重复 在同一应用层中 (例如ui),您可能违反了dry原则。在这种情况下,将相关数据封装到一个单独的类中通常会有所帮助。在我所了解的大多数UI框架中,您仍然可以将平面显示数据绑定到层次结构类。 |
|
2
1
类爆炸的问题是DTO方法固有的问题,对此您可能做不了多少。注意不要将视图模型与DTO模型混合在一起。DTO应该只用于从数据层获取数据到前端,而不用于表示。 随着.NET 3.5的出现,您可以选择实现一些基本的、更粗粒度的DTO,并用一个匿名类型替换您的ViewModel,您可以在DTO的基础上动态创建它。我发现这是一个非常灵活的解决方案。
关于命名约定,将DTO分组到场景中并将它们放入相应的名称空间可能很有用。例如
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |