📅  最后修改于: 2020-11-21 07:14:16             🧑  作者: Mango
实体数据模型(EDM)是实体关系模型的扩展版本,它使用多种建模技术指定数据的概念模型。它还引用了一组描述数据结构的概念,而与数据的存储形式无关。
EDM支持一组在概念模型中定义属性的原始数据类型。我们需要考虑构成实体框架基础的3个核心部分,统称为实体数据模型。以下是EDM的三个核心部分。
存储模型也称为存储模式定义层(SSDL),表示后端数据存储的示意图。
概念模型也称为概念模式定义层(CSDL),是我们用来编写查询的真实实体模型。
映射层只是概念模型和存储模型之间的映射。
逻辑模式及其与物理模式的映射表示为EDM。
Visual Studio还提供了实体设计器,用于可视化地创建EDM和映射规范。
该工具的输出是指定模式和映射的XML文件(* .edmx)。
Edmx文件包含实体框架元数据工件。
ADO.NET实体框架使用称为模式定义语言(SDL)的基于XML的数据定义语言来定义EDM模式。
SDL定义了与其他基本类型相似的简单类型,包括String,Int32,Double,Decimal和DateTime等。
枚举定义了原始值和名称的映射,也被视为简单类型。
仅从框架版本5.0起才支持枚举。
复杂类型是根据其他类型的集合创建的。这些类型的属性的集合定义了实体类型。
数据模型主要具有三个描述数据结构的关键概念-
实体类型是描述EDM中数据结构的基本构件。
在概念模型中,实体类型是从属性构造的,并描述了顶级概念的结构,例如业务应用程序中的学生和注册。
实体表示特定的对象,例如特定的学生或注册。
每个实体在实体集中必须具有唯一的实体关键字。实体集是特定实体类型的实例的集合。实体集(和关联集)在逻辑上被分组在一个实体容器中。
实体类型支持继承,即一种实体类型可以从另一种实体派生。
它是描述EDM中关系的另一个基本构建块。在概念模型中,关联表示两个实体类型(例如,学生和注册)之间的关系。
每个关联都有两个关联端,用于指定关联中涉及的实体类型。
每个关联端还指定一个关联端多重性,该多重性指示可以在关联那个端进行的实体数量。
关联结束多重性的值可以为一(1),零或一(0..1)或许多(*)。
可以通过导航属性或外键(如果它们在实体类型上公开)来访问关联一端的实体。
实体类型包含定义其结构和特征的属性。例如,一个学生实体类型可能具有诸如学生ID,姓名等属性。
属性可以包含原始数据(例如字符串,整数或布尔值)或结构化数据(例如复杂类型)。