Entity framework 4 ASP.NETMVC/服务层/存储库/EF4/POCO-我想得对吗?

Entity framework 4 ASP.NETMVC/服务层/存储库/EF4/POCO-我想得对吗?,entity-framework-4,asp.net-mvc-3,repository-pattern,poco,service-layer,Entity Framework 4,Asp.net Mvc 3,Repository Pattern,Poco,Service Layer,我一直在开发一个新的ASP.NET MVC应用程序,并尽力使用EF4和POCO类实现服务层/存储库/UOW模式 帮我看看我是否理解正确 为了简单起见,假设客户机正在请求客户的视图 1) 客户端从CustomerController请求查看 2) CustomerController创建一个新的UOW和一个新的CustomerService传入UOW 3) 客户服务创建一个新的存储库(客户),并传入从客户服务收到的UOW。在这一层中,您可能会说“允许您查看此客户吗?” 4) CustomerRep

我一直在开发一个新的ASP.NET MVC应用程序,并尽力使用EF4和POCO类实现服务层/存储库/UOW模式

帮我看看我是否理解正确

为了简单起见,假设客户机正在请求客户的视图

1) 客户端从CustomerController请求查看
2) CustomerController创建一个新的UOW和一个新的CustomerService传入UOW
3) 客户服务创建一个新的存储库(客户),并传入从客户服务收到的UOW。在这一层中,您可能会说“允许您查看此客户吗?”
4) CustomerRepository处理从EF4获取POCO类的操作
5) CustomerRepositoryPOCO类交回CustomerService,然后后者将它们交回CustomerController
6) CustomerController使用POCO类填充CustomerWebModel,然后将CustomerWebModel交给CustomerView

我仍然有点困惑为什么/在哪里使用AutoMapper


如果您对此有任何建议,我们将不胜感激。

AutoMapper可用于从POCO类“自动”填充CustomServiceWModel,而不是手动编写左侧=右侧代码。但是,如果您熟悉自定义代码,则无需使用AutoMapper。它只是一个减少自定义、枯燥和易出错代码的工具。

自动映射器由该工具自动生成,可以放入DAL中。如果我们想替换实体框架本身,那么我认为我们可以重用automapper类

已尝试进行类似操作,可在中找到


听起来很复杂。这个应用程序有多大?除非它是一个庞大的企业应用程序,否则可能不需要这么多仪式。请参阅,以获取一个可能适合您的应用程序的简单存储库模式的示例。当您需要一种简单的方法将ViewModels连接到底层模型对象时,可以使用Automapper。类似的问题:我想我不明白为什么不让ViewModels使用POCO类?视图模型上有对象吗,或者只是简单的属性。与CustomerServiceWModel一样,它是具有Customer类型的属性,还是具有FirstName、LastName、Address等属性。?如果我的视图模型有一个客户和一组CustomerAddress等,AutoMapper能否将其展平?@Sam Satriano,这是双向的。对于更简单的视图模型,视图模型类可以简单地包含POCO类。然而,这种方法使视图模型和poco类紧密耦合。许多人反对它,并建议将视图模型完全分开。我看到并做过两种方式,就像其他事情一样,两种方式都有利弊。这是您必须自己做出的决定,即您希望在应用程序中实现多大的分离。因此,如果我想使用AutoMapper并将POCO从视图模型中分离出来,您会怎么做?您是否创建了一整套类,将您的POCO模拟成另一个程序集或其他东西,然后使用AutoMapper将POCO映射到视图模型中要使用的视图模型对象?@Sam Satriano,视图模型类不模拟POCO,而是表示视图。我们想要编写它们的唯一原因是,它们可以绑定到视图。对于这些,我们需要编写自定义代码,以便在视图模型和POCO之间复制值。AutoMapper工具可以帮助减少自定义代码。很抱歉打扰您,但您是一个很好的资源:)您有我可以看到的视图模型/AutoMapper示例吗?