实体框架的最新版本让我爱不释手,因为我不喜欢将实体对象用作所有明显头痛的域对象,所以我正在做的是翻译检索到的实体对象我的服务和返回POCO给任何人消费服务。感谢automapper,从pocos到实体的转换和返回导致服务中的一些易于维护的代码。当事情变得多毛的时候,你将ViewModel添加到图片中,最后将viewmodel映射到控制器中的poco,然后将poco映射到服务中的实体对象以存储在存储库中。
你认为这是一种矫枉过正还是我太过挑剔了?
答案 0 :(得分:4)
这不是“过度杀伤”,而是“开销”。当你想要适当的分层时,这是不可避免的。 ViewModel属于UI层,您不希望将其与POCO混合使用。
虽然你可能会称它为一个小应用程序“过度杀伤”,你宁愿牺牲哪个边界?
答案 1 :(得分:4)
实体框架4内置了对POCO的支持。一个好的开始就是http://blogs.msdn.com/b/adonet/archive/2009/05/21/poco-in-the-entity-framework-part-1-the-experience.aspx
简而言之,您可以拥有完全持久性无知的域模型项目。您可以将此方法与EF 4中新引入的Code First方法一起使用。现在,您不再需要Automapper来进行POCO到实体对象的转换,反之亦然。但是,您可以使用Automapper在POCO和ViewModel之间进行映射,从而减少许多管道代码。
HTH。