DbContext
DbContext是EntityFramewoke的一个重要组成部分。 他是一个域或实体类和数据库之间的桥梁。主要负责与数据交互,派生的类DbContext称为实体框架的上下文类
EntitySet: DbContext包含所有的实体映射到数据库表的实体集(DbSet)
- 查询: DbContext 将LINQ-to-Entities查询转换为SQL查询并将其发送到数据库
- 更改跟踪: 它跟踪每个实体从数据库中查询出来后发生的修改变化
- 持久化数据: 它也基于实体状态执行插入、更新和删除操作到数据库中
- 缓存: DbContext默认第一级缓存
- 对象实例化: DbContext将原始表数据转换成实体对象
- 上下文类覆盖OnModelCreating方法。 可以用来在Code-first开始模式中配置实体
DBSet
DbSet 表示上下文中给定类型的所有实体的集合或可从数据库中查询的给定类型的所有实体的集合.代表一个实体集,用于创建、读取、更新和删除操作,可以使用 DbContext.Set 方法从 DbContext 中创建 DbSet对象,常见的DbSet类的方法如下:
名称 | 说明 |
---|---|
centered 文本居中 | right-aligned 文本居右 |
Add | 将给定实体以“已添加”状态添加到集的基础上下文中,这样一来,当调用 SaveChanges 时,会将该实体插入到数据库中 |
AddRange | 将给定实体集合添加到基础化集的上下文中(每个实体都置于“已添加”状态),这样当调用 SaveChanges 时,会将它插入到数据库中 |
AsNoTracking | 返回一个新查询,其中返回的实体将不会在 DbContext 中进行缓存. (继承自 DbQuery) |
AsStreaming | 已过时. 返回将流式处理结果而非缓存它的新查询. (继承自 DbQuery) |
Attach | 将给定实体附加到集的基础上下文中. 也就是说,将实体以“未更改”的状态放置到上下文中,就好像从数据库读取了该实体一样 |
Create | 为此集的类型创建新的实体实例. 请注意此实例不会添加或附加到此集. 如果基础上下文配置为创建代理且实体类型满足创建代理的要求,则返回的实例将是一个代理 |
Create() | 为此集的类型或派生自此集类型的类型创建新的实体实例. 请注意此实例不会添加或附加到此集. 如果基础上下文配置为创建代理且实体类型满足创建代理的要求,则返回的实例将是一个代理 |
Equals | 确定指定的 DbSet 是否等于当前 DbSet. (重写 DbQuery.Equals(Object)) |
Equals | 确定指定的 DbSet 是否等于当前 DbSet. (重写 DbQuery.Equals(Object).) |
Finalize | (继承自 Object.) |
Find | 查找带给定主键值的实体. 如果上下文中存在带给定主键值的实体,则立即返回该实体,而不会向存储区发送请求. 否则,会向存储区发送查找带给定主键值的实体的请求,如果找到该实体,则将其附加到上下文并返回.如果未在上下文或存储区中找到实体,则返回 null |
FindAsync | 异步查找带给定主键值的实体. 如果上下文中存在带给定主键值的实体,则立即返回该实体,而不会向存储区发送请求. 否则,会向存储区发送查找带给定主键值的实体的请求,如果找到该实体,则将其附加到上下文并返回. 如果未在上下文或存储区中找到实体,则返回 null |
GetHashCode | 异步查找带给定主键值的实体. 如果上下文中存在带给定主键值的实体,则立即返回该实体,而不会向存储区发送请求. 否则,会向存储区发送查找带给定主键值的实体的请求,如果找到该实体,则将其附加到上下文并返回. 如果未在上下文或存储区中找到实体,则返回 null |
GetType | 返回当前 DbSet 的类型 |
Include | 指定要包括在查询结果中的相关对象. (继承自 DbQuery) |
MemberwiseClone | (继承自 Object) |
Remove | 将给定实体标记为“已删除”,这样一来,当调用 SaveChanges 时,将从数据库中删除该实体. 请注意,在调用此方法之前,该实体必须以另一种状态存在于该上下文中 |
RemoveRange | 从基础化集的上下文中删除给定实体集合(每个实体都置于“已删除”状态),这样当调用 SaveChanges 时,会从数据库中删除它 |
SqlQuery | 创建一个原始 SQL 查询,该查询将返回此集中的实体. 默认情况下,上下文会跟踪返回的实体;可通过对返回的 DbSqlQuery |
ToString | 返回基础查询的 String 表示形式. (继承自 DbQuery) |