在ASP.NET MVC中使用DTO

时间:2011-03-03 04:48:36

标签: asp.net-mvc-2 dto

在ASP.Net MVC 2.0的上下文中,任何人都可以解释为什么我们需要使用DTO(数据传输对象),如果已经有模型?我已经看到一个示例,其中Web服务将DTO返回到asp.net,然后使用某个工厂类将其转换为Model。此Web服务与数据库通信,并以DTO的形式返回数据。

在我之前的项目中,我曾经使用数据上下文和存储库与数据库进行通信,后者用于将模型对象返回给我的控制器。然后我习惯将这个模型传递给相应的视图。这不是更简单吗?我无法找到DTO pattren的确切用法。

1 个答案:

答案 0 :(得分:5)

模型表示视图编码的逻辑数据模型。这可能会或可能不会与数据源进行1:1的映射。在Model == DTO的情况下,我同意,DTO有点多余。

在我使用过MVC的大多数情况下,很少有单一的数据源,或者缺乏将逻辑视图与物理源分开的愿望。例如,我经常进行多个服务和数据库调用来构建单个逻辑模型。