模型和实体之间的区别是什么?

39 浏览
0 Comments

模型和实体之间的区别是什么?

我对以下词汇的含义感到困惑:\nEntity(实体)、Model(模型)、DataModel(数据模型)、ViewModel(视图模型)\n请问有人可以帮助我理解它们吗?非常感谢你们。

0
0 Comments

什么是模型和实体之间的区别?

在使用对象关系映射(ORM)的Entity Framework中,实体是表示现实世界元素的一种方式。这个表示将映射到数据库中的一个表,并且它的属性将被转换为列。实体使用POCO类编写,这是一个简单的类,如下面的C#示例所示:

using System;
using System.Collections.Generic;
using System.Text;
namespace MyAplication.Entity
{
    public class Person
    {
        public long PersonId { get; set; }
        public string Name { get; set; }
        public short Age { get; set; }
    }
}

UI创建是一个复杂的任务。为了保持组织,程序员将应用程序分成不同的层。每个层都负责一项任务,这样可以防止代码混乱。在这种情况下,出现了MVC和MVVM等架构模式。

在MVC中,有一个层负责表示先前存储的数据,例如之前示例中建模的一个人的实例。这个层被称为模型。这个模板将用于构建视图。

在MVVM架构中,ViewModel与MVC架构中的模型非常相似。然而,ViewModel是数据的简化表示,只包含构建视图所需的信息。

using System;
using System.Collections.Generic;
using System.Text;
using MyAplication.Web.ViewModel.BaseViewModel;
namespace MyAplication.Web.ViewModel.Person
{
    public class PersonNameViewModel : BaseViewModel<string>
    {
        //只需要姓名
        public string Name { get; set; }
    }
}

DataModel是一个抽象模型,仅用于建立表示现实世界实体的元素之间的关系。这是一个非常全面的主题。

由于UI创建是一个复杂的任务,为了保持组织,程序员将应用程序分成不同的层。每个层都负责一项任务,这样可以防止代码混乱。在MVC和MVVM等架构模式中,模型和实体是两个重要的概念。模型是用于表示之前存储的数据的层,而实体是将现实世界元素映射到数据库表的方式。

在MVC中,模型用于构建视图,而在MVVM中,ViewModel类似于模型,但只包含构建视图所需的信息。

下面是一个示例实体类,表示一个人的属性:

using System;
using System.Collections.Generic;
using System.Text;
namespace MyAplication.Entity
{
    public class Person
    {
        public long PersonId { get; set; }
        public string Name { get; set; }
        public short Age { get; set; }
    }
}

在MVVM中,ViewModel是一个简化的数据表示,只包含构建视图所需的信息。下面是一个示例ViewModel类,表示一个人的姓名信息:

using System;
using System.Collections.Generic;
using System.Text;
using MyAplication.Web.ViewModel.BaseViewModel;
namespace MyAplication.Web.ViewModel.Person
{
    public class PersonNameViewModel : BaseViewModel<string>
    {
        //只需要姓名
        public string Name { get; set; }
    }
}

DataModel是一个抽象模型,用于建立表示现实世界实体的元素之间的关系。它与MVC中的模型不同,它只是用来建立实体之间的关系的抽象模型。这是一个非常广泛的主题,需要深入学习。

0
0 Comments

实体和模型之间的区别是什么?

在这段对话中,问题的出现是因为某些情况下了实体建模或实体关系建模(ERD)。实体表示任何现实世界的实体,如学生、课程。一个实体会有属性,如学生有名字、姓氏、出生日期。实体之间存在关系,如学生“注册在”课程上(其中学生和课程是具有属性的实体,而“注册在”是关系)。关系可以是“一对一”,“一对多”或“多对多”,例如一个学生“注册在”多个课程上,同样地一个课程“有”多个学生。关系还具有基数。

通过在实体之间添加关系,创建了一个“数据模型”。您已经对某个现实世界系统进行了建模,以及该系统中的内部实体/对象。下一步是对其进行规范化,以确保它符合“正常形式”。

在ERD术语中,可能有“逻辑”和“物理”模型。逻辑模型以简单的高级术语描述数据模型,不包含实现所需的技术细节。它代表了系统解决方案的概述。物理模型包含实际实现系统所需的技术细节(例如用于实现“多对多”关系的“多对多连接表”)。

这里有一些在线教程(虽然我相信可能有成千上万个):

- [http://www.maakal.com/maakalDB/Database101ERDpart1.htm](http://www.maakal.com/maakalDB/Database101ERDpart1.htm)

- [http://www.itteam-direct.com/gwentrel.htm](http://www.itteam-direct.com/gwentrel.htm)

- [http://www.bkent.net/Doc/simple5.htm](http://www.bkent.net/Doc/simple5.htm)

关于“模型”和“视图模型”,我不太确定你在相关上下文中是什么意思。不确定你是否将其与模型-视图-控制器范式(MVC)混淆了。在MVC中,模型是某个数据组件,视图表示对该数据的观察者(例如表格或图形UI组件)。有很多在线资源可以解释“模型视图控制器”或“MVC”。

希望这可以帮助到你,Wayne

谢谢你的回答和解释。我不仅仅是指MVC模式,我指的是所有“MVx”模式 - MVC,MVCP,MVVM。再次感谢,非常有帮助。

Gaurav Gahlot的回答是正确的,直接回答了问题。Wayne的回答也是准确的,但没有直接回答问题。所有这些答案都缺少具体的代码示例,显示了每个逻辑概念中涉及的代码构造类型...这将使这个答案对所有人都清晰明了。

0
0 Comments

实体(Entity)和模型(Model)这两个术语的定义非常模糊,不同的地方可能有不同的定义。

实体:实体表示数据库中作为记录保存的领域对象的单个实例。它具有一些属性,我们将其表示为表中的列。

模型:模型通常表示与问题或领域空间相关的真实世界对象。在编程中,我们创建类来表示对象。这些类被称为模型,具有一些属性和方法(定义对象的行为)。

视图模型:视图模型(ViewModel)一词源自MVVM(Model View ViewModel)设计模式。有时,要呈现视图的数据来自两个不同的对象。在这种情况下,我们创建一个模型类,该类包含视图所需的所有属性。它不是领域模型,而是视图模型,因为特定视图使用它。此外,它不代表一个真实世界的对象。

数据模型:为了解决问题,对象彼此交互。一些对象之间存在关系,因此形成了表示对象及其之间关系的数据模型。

例如,在管理客户订单的应用程序中,如果我们有一个客户对象和一个订单对象,则这些对象之间存在多对多的关系。数据模型最终取决于对象之间的交互方式。在数据库中,我们将数据模型视为一组相互引用的表。

要了解更多关于对象关系的信息,请访问我的博客文章:对象关系的基础知识

有关更多详细信息,请访问我的博客文章:实体 vs. 模型 vs. 视图模型 vs. 数据模型

这是相反的吗?实体具有数据和行为,而模型是保存到数据库中的对象?

他更新的博客文章:gauravgahlot.in/entity-model-viewmodel-datamodel

谢谢,我也更新了答案。

0