将DataTables用作DTO是没有意义的吗? 目前在我的MVC项目中,我使用自己的DAL,它的方法返回DataTables,每个视图也有ViewModel。 所以要向View提供数据有以下步骤:
如果我们省略第2步并将DataTables直接映射到ViewModels,那么我们可以获得更少的代码,甚至可以获得更高的性能。 所以如果我们使用DataTables而不是DTOs类是实用的吗? 你能告诉我你的答案是什么原因吗?
答案 0 :(得分:1)
为什么需要DTO? DTO是数据传输对象,通常表示在进程之间传输数据的对象。如果您没有进行任何进程间通信,则可能不需要这样做。
省略第2步将导致代码减少,并且您之间的viewmodel已经与数据结构分离。从我在你的问题中可以看出:省略它。
修改强>
根据您的更新,您仍然很难说出为什么需要DTO。
我想阻止这种情况成为“依赖” - 但是如果没有具体细节,很难给你一个明确的答案。我对你的问题的回答归结为:
如果您不需要,请不要介绍DTO等概念。
但是如果没有完整的背景,你是否需要它们很难做出决定:
您提到将域模型组合到DTO中:您是否可能在多个场景中重复使用相同的组合逻辑?
如果您 重复使用相同的组合逻辑,那么将它置于某种服务/外观之后并揭露您称之为DTO的内容可能是有意义的。另一方面:如果您的应用程序100%非常简单,请丢弃代码:只需将所有内容放入控制器中。
希望这有帮助。