Intern Day7

DbContext概念解释

  • DbContext是EF中的一个类(数据库(db=database)上下文类),可以当做是一个数据库对象的实例, DbContext实例代表与数据库的会话,可用于查询实体实例并将其保存到数据库。

  • 在EF中,可以通过DbContext对数据库进行增删改查等操作(属于EF里面的用法),后面加.表名可以得到表的数据。

  • Context翻译:上下文。我们可以将上下文看作相关“事物”的包装,例如 HttpContext(包含任何HTTP相关操作的信息), DbContext(包含用于数据库通信的方法和属性官方文档)。Context可以简单理解为特定一个类或多个类的封装。

  • DbSet表示可用于增删改查操作的实体集。

DbContext作用

DbContext是实体类和数据库之间的桥梁,DbContext主要负责与数据交互,主要作用是:

  1. DbContext包含所有的实体映射到数据库表的实体集(DbSet < TEntity >)。

  2. DbContext 将LINQ-to-Entities查询转换为SQL查询并将其发送到数据库。

  3. 更改跟踪: 它跟踪每个实体从数据库中查询出来后发生的修改变化。

  4. 持久化数据: 它也基于实体状态执行插入、更新和删除操作到数据库中。

DbContext使用

(包括下面的方法也要看)
创建数据库,我们需要:

  1. 定义应用的DbContext,这个可以通过创建一个类并让它继承自EF Core 的DbContext来实现。
  2. 每次要访问数据库时,都要创建该类的实例。

DbContext方法

只记录目前用到过的。

Method Usage
Add 将一个新实体添加到具有添加状态的DbContext中,并开始对其进行跟踪。调用SaveChanges()时,会将新的实体数据插入数据库。
AddAsync 用于向状态为“已添加”的DbContext添加新实体并开始对其进行跟踪的异步方法。调用SaveChangesAsync()时,会将新的实体数据插入数据库。
Set Set创建一个DbSet ,可用于查询和保存TEntity的实例
SavaChange 对已添加/修改/删除状态的实体的数据库执行INSERT/UPDATE/DELETE命令
SaveChangesAsync SaveChanges()的异步方法

DbContext的使用

详情见官方文档:https://docs.microsoft.com/zh-cn/ef/ef6/fundamentals/working-with-dbcontext

原文地址:https://www.cnblogs.com/OFSHK/p/14441635.html