在ASP.NET MVC中使用DTO

Ani*_*man 3 dto asp.net-mvc-2

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

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

ste*_*hbu 5

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

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