我很难理解这个词的含义是什么:
Entity
,Model
,DataModel
,ViewModel
任何人都可以帮我理解吗?谢谢大家。
答案 0 :(得分:33)
我希望我在这里没有错过你的观点... ...
无论如何,假设你在谈论实体建模或实体关系建模(ERD):
在实体之间添加关系会创建“数据模型”。您已经建模了一些真实世界系统以及该系统中的内部实体/对象。下一步是将其标准化以确保其符合“正常形式”。
在ERD术语中,您可能拥有“逻辑”和“物理”模型。逻辑以简单的高级术语描述数据模型,其中包含实现它所需的技术细节。它代表系统解决方案概述。物理模型包括实际实现系统所需的技术细节(例如实现“多对多”关系所需的“多对多连接表”)。
以下是一些在线教程(虽然我肯定必须有数千个):
我不太确定你在相关背景下的“模型”和“视图模型”是什么意思。不确定您是否可能将此与模型 - 视图 - 控制器范例(MVC)混淆。这里,模型是一些数据组件,视图表示该数据的观察者(例如表或图形UI组件)。有许多在线解释“模型视图控制器”或“MVC”。
希望这会有所帮助,Wayne
答案 1 :(得分:27)
这些术语的定义非常模糊。你会在不同的地方找到不同的定义。
实体:实体表示作为记录保存到数据库中的域对象的单个实例。它有一些我们在表中表示为列的属性。
模型:模型通常表示与问题或域空间相关的真实世界对象。在编程中,我们创建表示对象的类。这些类(称为模型)具有一些属性和方法(定义对象行为)。
ViewModel :术语ViewModel源自 MVVM (模型视图ViewModel)设计模式。在某些情况下,视图要呈现的数据来自两个不同的对象。在这种情况下,我们创建一个模型类,它包含视图所需的所有属性。它不是域模型,而是 ViewModel ,因为特定视图使用它。此外,它不代表现实世界的对象。
DataModel :为了解决问题,对象互相交互。一些对象在它们之间共享关系,因此形成表示对象及其之间关系的数据模型。
在管理客户订单的应用程序中,例如,如果我们有客户和订单对象,那么这些对象在它们之间共享多对多的关系。数据模型最终取决于我们的对象彼此交互的方式。在数据库中,我们将数据模型视为引用其他一些表的表网络。
要了解有关对象关系的更多信息,请访问:Basics of Object Relationships
有关详细信息,请访问:Entity vs Model vs ViewModel vs DataModel
答案 2 :(得分:3)
首先,要了解Entity,您必须了解Class。 它们都代表相同的字段,但术语根据声明而变化。
让我们考虑来自任何数据库的表[SQL,ORACLE,Informix,Cassandra ..]作为示例。
CLASS:
通常,在将表添加到edmx或dbmx之前,表被视为一个类。
//Student class
public class Student()
{
//Properties
public int StudentNumber;
public string StudentName;
}
ENTITY:
拖放/将表添加到dbmx / edmx后,将其称为 实体。
每个实体都是从相应的类生成的,我们可以添加
属性到实体,用于执行使用
的操作
linq或实体。
DATAMODEL:
包含表格中的所有字段。
DATAMODEL是对cshtml或控制器的直接类引用 您可以在其中访问属性以执行CRUD操作。
VIEWMODEL:
实施例: 让我们假设
//Student class
public class Student()
{
//Properties
public int StudentNumber;
public string StudentName;
}
//Marks Class
Public class Marks()
{
public int Maths;
public int Physics;
public int Chemistry;
//Now sometimes situations occur where we have to use one datamodel inside //other datamodel.
public Student StudentModel;
}
答案 3 :(得分:2)
实体是对象关系映射(ORM)中作为实体框架的现实世界元素的表示。该表示形式将映射到数据库中的表,并且其属性将转换为列。实体是使用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体系结构中的Model。但是,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>
{
//I just neet the name
public string Name { get; set; }
}
}
它只是一个抽象模型(此模型与MVC层模型不同),它建立了代表真实世界实体的元素之间存在的关系。这是一个非常全面的主题。