Entity Framework - 数据模型

实体数据模型(EDM)是实体 - 关系模型的扩展版本,它使用各种建模技术指定数据的概念模型.它还引用了一组描述数据结构的概念,无论其存储形式如何.

EDM支持一组原始数据类型,用于定义概念模型中的属性.我们需要考虑构成实体框架基础的3个核心部分,并将其统称为实体数据模型.以下是EDM的三个核心部分.

  • 存储架构模型

  • 概念模型

  • 映射模型

存储架构模型

存储模型也称为存储模式定义层(SSDL),表示后端数据存储的示意图.

EDM

概念模型

概念模型也被称为概念模式定义层(CSDL),是我们编写查询的真实实体模型.

映射模型

映射层只是概念模型和存储模型之间的映射.

逻辑模式及其与物理模式的映射表示为EDM.

  • Visual Studio还提供实体设计器,用于可视化创建EDM和映射规范这个工具的输出是指定模式和映射的XML文件(* .edmx).

  • Edmx文件包含实体框架元数据工件.

架构定义语言

ADO.NET实体框架使用基于XML的数据定义语言(称为模式定义语言(SDL))来定义EDM模式.

  • SDL定义了与其他基本类型类似的简单类型,包括String,Int32,Double,Decimal和DateTime等.

  • Enumeration定义了原始值和名称的映射,也被认为是一种简单类型.

  • 仅从框架版本5.0开始支持枚举.

  • 复杂类型是从其他类型的聚合创建的.这些类型的属性集合定义了实体类型.

数据模型主要有三个关键概念来描述数据结构和减号;

  • 实体类型

  • 关联类型

  • Property

实体类型

实体类型是用于描述EDM中数据结构的基本构建块.

  • 在概念模型中,实体类型是根据属性构建的,并描述顶级概念的结构,例如学生和业务应用程序中的注册.

  • 实体表示特定对象,例如特定学生或注册.

  • 每个实体必须在实体集中具有唯一的实体密钥.实体集是特定实体类型的实例的集合.实体集(和关联集)在逻辑上分组在实体容器中.

  • 实体类型支持继承,即可以从一个实体类型派生另一个.

实体类型

关联类型

这是用于描述EDM中关系的另一个基本构建块.在概念模型中,关联表示两种实体类型之间的关系,例如学生和注册.

  • 每个关联都有两个关联结束,指定关联中涉及的实体类型.

  • 每个关联结束还指定一个关联结束多样性,指示可以在该关联的实体数量关联结束.

  • 关联结束多重性的值可以是一(1),零或一(0..1),或许多( *).

  • 关联一端的实体可以通过导航属性访问,也可以通过外键访问实体类型.

属性

实体类型包含定义其结构和特征的属性.例如,Student实体类型可能具有诸如Student Id,Name等属性.

属性可以包含原始数据(例如字符串,整数或布尔值),或结构化数据(如复杂类型).