1

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

4

1 回答 1

1

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

于 2012-12-18T23:10:11.110 回答