- 实体框架教程
- 实体框架 - 首页
- 实体框架 - 概述
- 实体框架 - 架构
- 实体框架 - 环境设置
- 实体框架 - 数据库设置
- 实体框架 - 数据模型
- 实体框架 - DbContext
- 实体框架 - 类型
- 实体框架 - 关系
- 实体框架 - 生命周期
- 实体框架 - 代码优先方法
- 实体框架 - 模型优先方法
- 实体框架 - 数据库优先方法
- 实体框架 - 开发方法
- 实体框架 - 数据库操作
- 实体框架 - 并发
- 实体框架 - 事务
- 实体框架 - 视图
- 实体框架 - 索引
- 实体框架 - 存储过程
- 实体框架 - 断开连接的实体
- 实体框架 - 表值函数
- 实体框架 - 原生SQL
- 实体框架 - 枚举支持
- 实体框架 - 异步查询
- 实体框架 - 持久化
- 实体框架 - 投影查询
- 实体框架 - 命令日志
- 实体框架 - 命令拦截
- 实体框架 - 空间数据类型
- 实体框架 - 继承
- 实体框架 - 迁移
- 实体框架 - 渴望加载
- 实体框架 - 延迟加载
- 实体框架 - 显式加载
- 实体框架 - 验证
- 实体框架 - 跟踪更改
- 实体框架 - 彩色实体
- 实体框架 - 代码优先方法
- 实体框架 - 第一个示例
- 实体框架 - 数据注释
- 实体框架 - Fluent API
- 实体框架 - 种子数据库
- 实体框架 - 代码优先迁移
- 实体框架 - 多个DbContext
- 实体框架 - 嵌套实体类型
- 实体框架资源
- 实体框架 - 快速指南
- 实体框架 - 有用资源
- 实体框架 - 讨论
实体框架 - 数据模型
实体数据模型 (EDM) 是实体关系模型的扩展版本,它使用各种建模技术指定数据的概念模型。它也指一组描述数据结构的概念,而不管其存储形式。
EDM 支持一组定义概念模型中属性的原始数据类型。我们需要考虑构成实体框架基础的三个核心部分,它们统称为实体数据模型。以下是 EDM 的三个核心部分。
- 存储模式模型
- 概念模型
- 映射模型
存储模式模型
存储模型也称为存储模式定义层 (SSDL),它表示后端数据存储的示意图。
概念模型
概念模型也称为概念模式定义层 (CSDL),是我们编写查询的实际实体模型。
映射模型
映射层只是概念模型和存储模型之间的映射。
逻辑模式及其与物理模式的映射表示为 EDM。
Visual Studio 还提供实体设计器,用于可视化创建 EDM 和映射规范。
该工具的输出是指定模式和映射的 XML 文件 (*.edmx)。
Edmx 文件包含实体框架元数据工件。
模式定义语言
ADO.NET 实体框架使用基于 XML 的数据定义语言,称为模式定义语言 (SDL),来定义 EDM 模式。
SDL 定义了类似于其他原始类型的简单类型,包括字符串、Int32、Double、Decimal 和 DateTime 等。
枚举(定义了原始值和名称的映射)也被认为是一种简单类型。
只有从 5.0 版本开始才支持枚举。
复杂类型是由其他类型的聚合创建的。这些类型的属性集合定义了实体类型。
数据模型主要包含三个关键概念来描述数据结构:
- 实体类型
- 关联类型
- 属性
实体类型
实体类型是描述 EDM 中数据结构的基本构建块。
在概念模型中,实体类型由属性构成,并描述顶级概念的结构,例如业务应用程序中的学生和注册。
实体表示特定对象,例如特定学生或注册。
每个实体都必须在实体集中具有唯一的实体键。实体集是特定实体类型的实例的集合。实体集(和关联集)在实体容器中进行逻辑分组。
实体类型支持继承,即一个实体类型可以从另一个实体类型派生。
关联类型
它是描述 EDM 中关系的另一个基本构建块。在概念模型中,关联表示两种实体类型之间的关系,例如学生和注册。
每个关联都有两个关联端,它们指定关联中涉及的实体类型。
每个关联端还指定关联端多重性,指示关联该端的实体数量。
关联端多重性可以取值为一 (1)、零或一 (0..1) 或多 (*)。
关联一端的实体可以通过导航属性访问,或者如果它们在实体类型上公开,则可以通过外键访问。
属性
实体类型包含定义其结构和特性的属性。例如,学生实体类型可能具有学生 ID、姓名等属性。
属性可以包含原始数据(例如字符串、整数或布尔值)或结构化数据(例如复杂类型)。