在阅读文章和处理 MVC 项目时,我发现术语“模型”以多种方式使用,我希望能够清楚地理解以下术语的含义。有些可能是同义词。有些可能与实体框架和/或 DDD 有关。
- 模型
- 查看模型
- 领域模型
- 实体模型
我很感谢在定义使用这些短语时(最有可能)所指的任何内容。
在阅读文章和处理 MVC 项目时,我发现术语“模型”以多种方式使用,我希望能够清楚地理解以下术语的含义。有些可能是同义词。有些可能与实体框架和/或 DDD 有关。
我很感谢在定义使用这些短语时(最有可能)所指的任何内容。
模型可以指代任何作为概念模型的东西(请耐心等待)。*Data*Model 是数据库外观的概念模型。
查看模型。没有整齐地映射到 DataModel 中的实体的实体。通常,当您想为下拉列表添加可选值列表等内容时,您将使用 ViewModel。或者,当您想将额外信息添加到要发送到视图的模型中时。或者,更容易混淆的是,ViewModel 是一个自定义项,它由不同的数据实体组成,不会以通常的 MyEntities.SaveChanges() 方式保存到您的数据库中,而是需要您检索需要保存的位.
领域模型。DataModel 和 Controller 之间的额外层。域模型可以最容易地描述为在得来速下接受您的订单的收银员。你向她要一件物品,她决定细节是什么以及是否允许你拿到那件物品。
实体模型。一组代表数据库表、视图和存储过程的类。当一篇 MVC 文章谈到模型时,通常是指实体模型。
域和实体模型“通常”指的是与业务对象平行的数据对象;想想“用户”或“汽车”或“水果蛋糕”,即。你在数据库中有一个表的东西。这些特定于您的域/业务,其中实体是这些对象的单个实例。
查看模型“通常”是指从上面组成的那些模型的集合,这些模型构成了您想要在网页/表单/whatnot 中查看/使用的信息。因此,也许您想要一份用户列表以及他们开到商店购买水果蛋糕的汽车。相关数据的集合成为在特定“视图”中处理的单个“模型”。
然后,模型就变成了一种非常通用的表达方式,但更模糊地说,它意味着您需要处理的某种类型的数据对象,或者公开您想要处理的信息的数据对象。
在 ASP.NET MVC 中,M 代表 ViewModel。您使用模型来填充视图,并且您的浏览器可以从视图中将模型发布(类似的数据)回控制器。
您使用什么逻辑在控制器中填充 ViewModel 取决于您。例如,您可以使用实体框架及其自己的模型和 AutoMapper 之类的工具来使用数据库模型的属性填充 ViewModel,或者您甚至可以将 EF 模型用作 ViewModel。
就像这里说的:
“我正在构建一个 MVC 应用程序” [意味着] 实际上,您正在将 MVC 表示层放到您的应用程序中
ViewModel:用于定义绑定到一些 UI 元素(如文本框、列表、标签等)的属性/字段。
模型:用于编写前端处理逻辑,如保存数据、根据我们从下面层获得的数据计算字段值等