:我是从非常相似点开始域实体,DTO和视图模型 。
该建议使用的DTO的域模型之间映射和MVC的视图模型似乎一致预期。 我追求的是如何弥合域模型(基于框架的实体项目)到的WebAPI MVC项目的详细信息。
我开始用简单的波苏斯的项目(由EF PowerTools的产生逆向工程我存在的DB),我想连接到一个MVC4的WebAPI项目。
我希望我会添加业务逻辑基线POCO项目作为我的解决方案的发展,也许这就是这个问题的关键所在。 该变换波苏斯到的东西,可以映射到MVC项目的业务逻辑。
究竟如何布线这些项目在一起,这样我就可以开始创建于知道该EF项目的实体MVC项目控制器? Automapper? 我们可以指出帖里采用Automapper的这个特定的功能/文档?
你不想知道该EF实体控制器 - 这是这整点。 :)
你自己说的DTO的,应使用您的域名映射到您的视图模型,然后你问:“我怎么能弥补我的域模型与MVC控制器?”。 你已经回答了这一点 - 与DTO的!
在DTO用作用于显示某一视图复杂业务对象和模型之间的传输层。 这些都具有不严格涉及“仅仅是数据的”特殊要求 - 因此使用的DTO会给你更大的去耦和关注点分离。
如果你不分离,从视图模型域,你将被迫直接引用您的视图模型的代码,这暴露了不必要的数据和功能“环比上涨”的EF对象。
现在,如果你使用的WebAPI的方式来出货数据,那么我觉得你通常可以摆脱发送的DTO,因为的WebAPI数据通常不会实现视图模型逻辑。 但情况因人而异,当然,这取决于你打算如何使用你的控制器。
对于AutoMapper我会说这是最好的开始与自己的文档(他们甚至使用DTO的例子在其中): http://github.com/AutoMapper/AutoMapper/wiki/Getting-started