Entity Framework Core系列之DbContext

时间:2021-10-16 14:53:03

前言:

EF Core DbContext表示与数据库的会话,并提供与数据库通信的API,具有以下功能:

  • 数据库连接
  • 数据操作,如查询和持久化
  • 更改追踪
  • 模型构建
  • 数据映射
  • 对象缓存
  • 事务管理

数据库连接(Database Connections)

DbContext负责打开和管理数据库的连接

数据操作(Data operations )

DbContext提供了直接执行下列数据操作的方法:

增加(Entity Framework Core系列之DbContext(添加))

修改(Entity Framework Core系列之DbContext(修改))

删除

查询(通过DbSet)

变更追踪(Change Tracking)

更改跟踪器(Change Tracker)检测对实体所做的更改,并相应地设置对象的实体状态。实体的状态决定了数据库将被要求在其上执行的操作类型,这样将会生成对应的SQL。

模型构建(Model building)

DbContext构建基于约定和配置的概念模型,并将其映射到数据库。该模型及其映射是在应用程序启动时构建的,并在应用程序的生命周期内持久保存。

数据映射(Data Mapping)

DbContext包含一个数据映射器层(data mapper layer),负责将SQL查询的结果映射到实体实例和客户端应用程序定义的其他类型

对象缓存(Object caching)

DbContext为被请求从数据存储中检索的对象提供一级缓存。对同一对象的后续请求将返回缓存的对象,而不是执行另一个数据库请求。

事务管理(Transaction management)

当调用DbContext SaveChanges方法时,将创建一个事务,并将所有挂起的更改包装为一个工作单元( Unit Of Work)。如果在将更改应用到数据库时发生错误,则回滚它们,并将数据库保留在未修改的条件中。

此文章只是一些概念的介绍,具体内容会在其他系列文章中完善。