我一直在研究如何将ASP.NET MVC和Entity Framework一起用于一个相当大的项目。 大多数示例通过将.edmx文件移动到新的DAL项目来将其与MVC项目分开。在这个项目中,您还可以找到存储库和接口。
虽然这种方法对我来说很有意义,但有一件事我似乎无法弄清楚:MVC中的模型怎么样?在大多数示例中,控制器直接从DAL项目寻址存储库接口,因此不再使用MVC模型?或者继续使用它们是一个好主意,但是将它们映射到Controller?
答案 0 :(得分:7)
有两种型号:
域模型代表您的域实体。它们可以是来自数据库的自动生成的EF类,也可以来自其他地方,例如从您正在使用的WCF服务生成的代理。这些应该存在于您的域层中。
另一方面,查看模型进入ASP.NET MVC项目的Models
文件夹。这些是您为每个视图定义的特定类。控制器操作将查询DAL层以获取一个或多个域模型,并实例化您为要从此控制器呈现的给定视图专门定义的视图模型。因此,视图模型可以保存来自多个域模型的信息(仅仅因为在给定视图中您需要所有这些信息)。然后控制器将视图模型传递给视图以进行显示。