我们正在构建一个ASP MVC3应用程序,我们正在构建服务层和实体模型。第三方正在构建视图/控制器。
现在棘手的一点是模型。它应该去哪里?
我的观点是MVC Web应用程序只有View和控制器。我们的服务库将具有业务逻辑和EF。但我认为我们不应该直接将EF实体暴露给Web应用程序。 (或者我们应该?)相反,我们应该查看视图并为每个视图创建视图模型类。这可能需要为每个视图创建多个视图模型类。
如果这是正确的设计,任何人都可以提出意见吗?如果是这样,视图模型应驻留在哪里?我们应该为视图模型创建另一个库吗?
答案 0 :(得分:2)
我建议将您的模型作为具有CRUD功能的POCO对象 - 您不应该公开EF实体。这样,如果需要,您的服务库可以在其他应用程序或接口中重用。
如果您提供的POCO对象不能直接用作视图模型,则由编写控制器的团队根据您的服务对象(POCO)创建视图模型。那可能(希望)是一个非常简单的视图模型,使用您的POCO作为属性(可能是视图模型是您的一个POCO的列表,或者是几个不同POCO的组合)。
那只是我的两分钱......