Share via


DbSet 类

定义

当生成时实体的类型未知时,可以使用的非泛型版本 DbSet<TEntity>

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification="Name is intentional")]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Justification="Casing is intentional")]
public abstract class DbSet : System.Data.Entity.Infrastructure.DbQuery
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1010:CollectionsShouldImplementGenericInterface")]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification="Name is intentional")]
public abstract class DbSet : System.Data.Entity.Infrastructure.DbQuery
type DbSet = class
    inherit DbQuery
Public MustInherit Class DbSet
Inherits DbQuery
继承
DbSet
属性

构造函数

DbSet()

当从派生类型的构造函数调用 时,创建 的实例 DbSet ,该构造函数将用作 DbSets 的测试双精度。 测试双精度型将使用的方法和属性必须由测试双精度测试实现,AsNoTracking、AsStreaming(其中默认实现为 no-op 的 Include 除外)。

属性

ElementType

IQueryable 元素类型。

(继承自 DbQuery)
Local

获取一个 ObservableCollection<T> ,它表示此集中所有“已添加”、“未更改”和“已修改”实体的本地视图。 在上下文中添加或删除实体时,该本地视图将保持同步。 同样,在本地视图中添加或删除实体也会自动在上下文中添加或删除实体。

Sql

获取 String 基础查询的表示形式。

(继承自 DbQuery)

方法

Add(Object)

将给定实体以“已添加”状态添加到集的基础上下文中,这样一来,当调用 SaveChanges 时,会将该实体插入到数据库中。

AddRange(IEnumerable)

将给定的实体集合添加到集基础的上下文中,其中每个实体都处于“已添加”状态,以便调用 SaveChanges 时,该实体将插入数据库。

AsNoTracking()

返回一个新查询,其中返回的实体不会缓存在 中 DbContext

(继承自 DbQuery)
AsStreaming()
已过时.

返回将流式传输结果而不是缓冲的新查询。

(继承自 DbQuery)
Attach(Object)

将给定实体附加到集的基础上下文中。 也就是说,将实体以“未更改”的状态放置到上下文中,就好像从数据库读取了该实体一样。

Cast<TEntity>()

返回等效的泛型 DbSet<TEntity> 对象。

Create()

为此集的类型创建新的实体实例。 请注意,此实例未添加或附加到集。 如果基础上下文配置为创建代理,且实体类型满足创建代理的要求,则返回的实例将是一个代理。

Create(Type)

为此集的类型或派生自此集类型的类型创建新的实体实例。 请注意,此实例未添加或附加到集。 如果基础上下文配置为创建代理,且实体类型满足创建代理的要求,则返回的实例将是一个代理。

Equals(Object)

当生成时实体的类型未知时,可以使用的非泛型版本 DbSet<TEntity>

Find(Object[])

查找带给定主键值的实体。 如果上下文中存在带给定主键值的实体,则立即返回该实体,而不会向存储区发送请求。 否则,会向存储区发送查找带给定主键值的实体的请求,如果找到该实体,则将其附加到上下文并返回。 如果未在上下文或存储区中找到实体,则返回 null。

FindAsync(CancellationToken, Object[])

异步查找具有给定主键值的实体。 如果上下文中存在带给定主键值的实体,则立即返回该实体,而不会向存储区发送请求。 否则,会向存储区发送查找带给定主键值的实体的请求,如果找到该实体,则将其附加到上下文并返回。 如果未在上下文或存储区中找到实体,则返回 null。

FindAsync(Object[])

异步查找具有给定主键值的实体。 如果上下文中存在带给定主键值的实体,则立即返回该实体,而不会向存储区发送请求。 否则,会向存储区发送查找带给定主键值的实体的请求,如果找到该实体,则将其附加到上下文并返回。 如果未在上下文或存储区中找到实体,则返回 null。

GetHashCode()

当生成时实体的类型未知时,可以使用的非泛型版本 DbSet<TEntity>

GetType()

当生成时实体的类型未知时,可以使用的非泛型版本 DbSet<TEntity>

Include(String)

指定要包括在查询结果中的相关对象。

(继承自 DbQuery)
Remove(Object)

将给定实体标记为“已删除”,这样一来,当调用 SaveChanges 时,将从数据库中删除该实体。 请注意,在调用此方法之前,该实体必须以另一种状态存在于该上下文中。

RemoveRange(IEnumerable)

从该集基础的上下文中删除给定的实体集合,并将每个实体置于“已删除”状态,以便调用 SaveChanges 时将从数据库中删除该实体。

SqlQuery(String, Object[])

创建一个原始 SQL 查询,该查询将返回此集中的实体。 默认情况下,上下文跟踪返回的实体;这可以通过对返回的 调用 AsNoTracking DbRawSqlQuery 进行更改。 请注意,返回的实体始终是此集的类型,绝不是派生类型。 如果查询的一个或多个表可能包含其他实体类型的数据,则必须编写适当的 SQL 查询以确保只返回适当类型的实体。

与任何接受 SQL 的 API 一样,必须参数化任何用户输入,以防止 SQL 注入攻击。 可以在 SQL 查询字符串中包含参数占位符,然后将参数值作为其他参数提供。 提供的任何参数值将自动转换为 DbParameter。 上下文。设置 (typeof (Blog) ) 。SqlQuery (“SELECT * FROM dbo。文章 WHERE Author = @p0“, userSuppliedAuthor) ;或者,还可以构造 DbParameter 并将其提供给 SqlQuery。 这样可以在 SQL 查询字符串中使用命名参数。 上下文。设置 (typeof (Blog) ) 。SqlQuery (“SELECT * FROM dbo。文章 WHERE Author = @author“, new SqlParameter (”@author“, userSuppliedAuthor) ) ;

ToString()

返回 String 基础查询的表示形式。

(继承自 DbQuery)

显式接口实现

IDbAsyncEnumerable.GetAsyncEnumerator()

返回一个 , IDbAsyncEnumerator 枚举时将针对数据库执行查询。

(继承自 DbQuery)
IEnumerable.GetEnumerator()

返回一个 , IEnumerator 枚举时将针对数据库执行查询。

(继承自 DbQuery)
IListSource.ContainsListCollection

返回 false

(继承自 DbQuery)
IListSource.GetList()

引发一个异常,该异常指示不支持直接绑定到存储查询。 改为使用数据填充 DbSet(例如,使用 Load 扩展方法),然后绑定到本地数据。 对于 WPF,绑定到 DbSet.Local。 对于 Windows 窗体,则绑定到 DbSet.Local.ToBindingList()。

(继承自 DbQuery)
IQueryable.Expression

IQueryable LINQ 表达式。

(继承自 DbQuery)
IQueryable.Provider

IQueryable 提供程序。

(继承自 DbQuery)

适用于