使用模型或数据传输对象作为工具来跨应用程序的不同层移动数据?

时间:2012-12-18 22:35:36

标签: c# asp.net-mvc asp.net-mvc-3 ef-code-first

我正在使用EF代码第一种方法处理mvc4应用程序。我已经完成了应用程序的模型编写,并遇到了我以前从未使用过的数据传输对象DTO。我对模型的基本想法是,他们是出租车司机,将数据库中的数据作为乘客,并在有需求的地方放下。那么,在什么情况下我们应该选择DTO?

1 个答案:

答案 0 :(得分:1)

使用模型作为唯一的工具的问题是,有时它会携带太多数据。例如,可能需要显示所有用户信息,而不是SSN。另一个问题是过度发布。例如,如果您的模型在WEB API中用于反序列化JSON对象,则有人可以轻松地将额外信息添加到其中。如果您的模型将这些信息一直带到DB。 要限制这些问题,您可以创建视图模型,DTO或两者,这将限制客户端“可见”的字段数量。您的DTO保湿器将在水合过程中简单地跳过不存在的区域。 检查此自动映射器http://www.dnrtv.com/default.aspx?showNum=155