Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 ASP MVC服务/模型与视图的分离_Asp.net Mvc 3_Entity Framework - Fatal编程技术网

Asp.net mvc 3 ASP MVC服务/模型与视图的分离

Asp.net mvc 3 ASP MVC服务/模型与视图的分离,asp.net-mvc-3,entity-framework,Asp.net Mvc 3,Entity Framework,我们正在构建一个ASP MVC3应用程序,其中我们正在构建服务层和实体模型。第三方正在构建视图/控制器 现在棘手的是模型。它应该去哪里 我的观点是MVC web应用程序将只有视图和控制器。我们的服务库将具有业务逻辑和EF。但是我认为我们不应该直接向web应用程序公开EF实体。(或者我们应该?)相反,我们应该查看视图并为每个视图创建视图模型类。这可能需要为每个视图创建多个视图模型类 是否有人能提供他们的意见,如果这是正确的设计?如果是,视图模型应该驻留在哪里?我们是否应该为视图模型创建另一个库 我

我们正在构建一个ASP MVC3应用程序,其中我们正在构建服务层和实体模型。第三方正在构建视图/控制器

现在棘手的是模型。它应该去哪里

我的观点是MVC web应用程序将只有视图和控制器。我们的服务库将具有业务逻辑和EF。但是我认为我们不应该直接向web应用程序公开EF实体。(或者我们应该?)相反,我们应该查看视图并为每个视图创建视图模型类。这可能需要为每个视图创建多个视图模型类


是否有人能提供他们的意见,如果这是正确的设计?如果是,视图模型应该驻留在哪里?我们是否应该为视图模型创建另一个库

我建议将您的模型作为具有CRUD功能的POCO对象—您不应该公开EF实体。这样,如果需要,您的服务库可以在其他应用程序或接口中重用

如果您提供的POCO对象不能直接作为视图模型工作,那么由编写控制器的团队根据您的服务对象(POCO)创建视图模型。这可能(希望)是一个非常简单的视图模型,使用您的POCO作为属性(视图模型可能是一个POCO列表,或者是两个不同POCO的组合)


这只是我的两分钱…

这可能会对你有所帮助:谢谢你,乔纳斯。我假设你的意思是我们为每个实体创建一个POCO类?这不仅仅意味着我们要将实体结构复制到另一个类中吗?只有当您认为实体最能反映您想要建模的数据时,每个实体才会有一个POCO。可能您不想公开所有的实体。此外,通过不公开实体,您可以完全控制CRUD的工作方式。如果你不想让任何人真正删除一个对象,你可以改为设置一个标志,等等。如果你使用EF 4.1,可以下载一些扩展来为你创建POCO,那么你所需要做的就是CRUD功能。()