Entity Framework 架构

17 Mar 2025 | 阅读 2 分钟

以下给出了实体框架架构的组件

Entity Framework Architecture

EDM(实体数据模型): EDM 由三个部分组成。这三个部分是

概念模型、映射和存储模型。

概念模型: 概念模型包含模式类及其关系。概念模型独立于数据库设计表。

存储模型: 存储模型是数据库设计模型,其中包括表、视图、存储过程、它们的关系和键。

映射: 映射包含关于如何将概念模型映射到存储模型的信息。

LINQ to Entities: LINQ to Entities (L2E) 是一种查询语言,用于针对对象模型编写查询。它返回在概念模型中定义的实体。我们可以在这里使用我们的 LINQ to SQL 技能。

Entity SQL: Entity SQL 是另一种查询语言(仅适用于 EF 6),就像 LINQ to Entities 一样。但是,它比 L2E 稍微困难,开发人员将不得不单独学习它。

对象服务: 对象服务是从数据库访问数据并返回它的主要入口点。对象服务负责物化,而物化是将从实体客户端数据提供程序返回的数据转换为实体对象结构的过程。

实体客户端数据提供程序: 此层的主要职责是将 LINQ to Entities 或 Entity SQL 查询转换为数据库可以理解的 SQL 查询。它与 ADO.NET 数据提供程序通信,而 ADO.NET 数据提供程序又从数据库发送或检索数据。

ADO.NET 数据提供程序: 此层使用标准 ADO.Net 与数据库通信。

实体框架中的上下文类

上下文类是使用 EF 6 或 EF Core 时最重要的类。它代表使用 CRUD(创建、读取、更新和删除)操作与底层数据库的会话。

实体框架中的上下文类是从 EF6 和 EF Core 中的“System.Data.Entity.DbContext”派生的一个类。上下文类的实例表示工作单元和存储库模式,它可以在单个数据库事务下组合多个更改。

上下文类用于查询中将数据保存到数据库中。它还用于配置域类、与数据库相关的映射、更改跟踪设置、缓存、事务等。

以下 SchoolContext 类是上下文类的示例。

在上面的例子中,SchoolContext 类是从 DbContext 派生的,这使其成为一个上下文类。它还包括一个用于 Student、StudentAddress 和 Grade 实体的实体集