DbSet<TEntity> 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
DbSet<TEntity>可用于查询和保存 的TEntity
实例。
针对 的 DbSet<TEntity> LINQ 查询将转换为针对数据库的查询。
public abstract class DbSet<TEntity> : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Query.Internal.IAsyncEnumerableAccessor<TEntity>, System.Collections.Generic.IEnumerable<TEntity>, System.Linq.IQueryable<TEntity> where TEntity : class
public abstract class DbSet<TEntity> : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Query.Internal.IAsyncEnumerableAccessor<TEntity>, System.Collections.Generic.IEnumerable<TEntity>, System.ComponentModel.IListSource, System.Linq.IQueryable<TEntity> where TEntity : class
public abstract class DbSet<TEntity> : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, System.Collections.Generic.IAsyncEnumerable<TEntity>, System.Collections.Generic.IEnumerable<TEntity>, System.ComponentModel.IListSource, System.Linq.IQueryable<TEntity> where TEntity : class
public abstract class DbSet<TEntity> : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, System.Collections.Generic.IEnumerable<TEntity>, System.ComponentModel.IListSource, System.Linq.IQueryable<TEntity> where TEntity : class
type DbSet<'Entity (requires 'Entity : null)> = class
interface IQueryable<'Entity (requires 'Entity : null)>
interface seq<'Entity (requires 'Entity : null)>
interface IEnumerable
interface IQueryable
interface IAsyncEnumerableAccessor<'Entity (requires 'Entity : null)>
interface IInfrastructure<IServiceProvider>
type DbSet<'Entity (requires 'Entity : null)> = class
interface IQueryable<'Entity (requires 'Entity : null)>
interface seq<'Entity (requires 'Entity : null)>
interface IEnumerable
interface IQueryable
interface IAsyncEnumerableAccessor<'Entity (requires 'Entity : null)>
interface IInfrastructure<IServiceProvider>
interface IListSource
type DbSet<'Entity (requires 'Entity : null)> = class
interface IQueryable<'Entity (requires 'Entity : null)>
interface seq<'Entity (requires 'Entity : null)>
interface IEnumerable
interface IQueryable
interface IAsyncEnumerable<'Entity (requires 'Entity : null)>
interface IInfrastructure<IServiceProvider>
interface IListSource
type DbSet<'Entity (requires 'Entity : null)> = class
interface IQueryable<'Entity (requires 'Entity : null)>
interface seq<'Entity (requires 'Entity : null)>
interface IEnumerable
interface IQueryable
interface IInfrastructure<IServiceProvider>
interface IListSource
Public MustInherit Class DbSet(Of TEntity)
Implements IAsyncEnumerableAccessor(Of TEntity), IEnumerable(Of TEntity), IInfrastructure(Of IServiceProvider), IQueryable(Of TEntity)
Public MustInherit Class DbSet(Of TEntity)
Implements IAsyncEnumerableAccessor(Of TEntity), IEnumerable(Of TEntity), IInfrastructure(Of IServiceProvider), IListSource, IQueryable(Of TEntity)
Public MustInherit Class DbSet(Of TEntity)
Implements IAsyncEnumerable(Of TEntity), IEnumerable(Of TEntity), IInfrastructure(Of IServiceProvider), IListSource, IQueryable(Of TEntity)
Public MustInherit Class DbSet(Of TEntity)
Implements IEnumerable(Of TEntity), IInfrastructure(Of IServiceProvider), IListSource, IQueryable(Of TEntity)
类型参数
- TEntity
由此集操作的实体的类型。
- 继承
-
DbSet<TEntity>
- 派生
- 实现
-
IInfrastructure<IServiceProvider> Microsoft.EntityFrameworkCore.Query.Internal.IAsyncEnumerableAccessor<TEntity> IEnumerable<T> IEnumerable<TEntity> IEnumerable IQueryable IQueryable<TEntity> IListSource IAsyncEnumerable<TEntity>
注解
针对 DbSet<TEntity> 的 LINQ 查询的结果将包含从数据库返回的结果,可能不会反映上下文中尚未保存到数据库的更改。 例如,结果将不包含新添加的实体,并且可能仍包含标记为要删除的实体。
根据所使用的数据库,针对 DbSet<TEntity> 的 LINQ 查询的某些部分可能在内存中求值,而不是转换为数据库查询。
DbSet<TEntity> 对象通常从 DbSet<TEntity> 派生 DbContext 的 或 方法 Set<TEntity>() 上的 属性获取。
Entity Framework Core 不支持在同一 DbContext 实例上运行多个并行操作。 这包括异步查询的并行执行以及从多个线程进行的任何显式并发使用。 因此,请始终立即等待异步调用,或者对并行执行的操作使用单独的 DbContext 实例。 有关详细信息和示例 ,请参阅避免 DbContext 线程问题 。
有关详细信息和示例,请参阅 DbContext 生存期、配置和初始化、使用 EF Core 查询数据和更改跟踪。
构造函数
DbSet<TEntity>() |
DbSet<TEntity>可用于查询和保存 的 |
属性
EntityType |
与此 IEntityType 集关联的元数据。 |
Local |
获取一个 , LocalView<TEntity> 它表示此集中所有“已添加”、“未更改”和“修改”实体的本地视图。 |
方法
Add(TEntity) |
开始跟踪给定实体,以及尚未跟踪的任何其他可访问实体, Added 状态为,以便在调用 时 SaveChanges() 将其插入数据库。 |
AddAsync(TEntity, CancellationToken) |
开始跟踪给定实体,以及尚未跟踪的任何其他可访问实体, Added 状态为,以便在调用 时 SaveChanges() 将其插入数据库。 |
AddRange(IEnumerable<TEntity>) |
开始跟踪给定的实体,以及尚未跟踪的任何其他可访问实体, Added 状态为,以便在调用 时 SaveChanges() 将其插入数据库。 |
AddRange(TEntity[]) |
开始跟踪给定的实体,以及尚未跟踪的任何其他可访问实体, Added 状态为,以便在调用 时 SaveChanges() 将其插入数据库。 |
AddRangeAsync(IEnumerable<TEntity>, CancellationToken) |
开始跟踪给定的实体,以及尚未跟踪的任何其他可访问实体, Added 状态为,以便在调用 时 SaveChanges() 将其插入数据库。 |
AddRangeAsync(TEntity[]) |
开始跟踪给定的实体,以及尚未跟踪的任何其他可访问实体, Added 状态为,以便在调用 时 SaveChanges() 将其插入数据库。 |
AsAsyncEnumerable() |
返回此类型为 IAsyncEnumerable<T>的对象。 |
AsQueryable() |
返回此类型为 IQueryable<T>的对象。 |
Attach(TEntity) |
默认情况下,使用 状态开始跟踪给定实体和可从给定实体 Unchanged 访问的条目,但有关将使用不同的状态的情况,请参阅下文。 |
AttachRange(IEnumerable<TEntity>) |
默认情况下,使用 状态开始跟踪可从给定实体访问的给定实体 Unchanged 和条目,但有关将使用不同的状态的情况,请参阅下文。 |
AttachRange(TEntity[]) |
默认情况下,使用 状态开始跟踪可从给定实体访问的给定实体 Unchanged 和条目,但有关将使用不同的状态的情况,请参阅下文。 |
Entry(TEntity) |
EntityEntry<TEntity>获取给定实体的 。 条目提供对实体的更改跟踪信息和操作的访问。 |
Find(Object[]) |
查找带给定主键值的实体。 如果上下文正在跟踪具有给定主键值的实体,则会立即返回该实体,而不会向数据库发出请求。 否则,将查询具有给定主键值的实体的数据库,如果找到此实体,则会附加到上下文并返回。 如果未找到任何实体,则返回 null。 |
FindAsync(Object[]) |
查找带给定主键值的实体。 如果上下文正在跟踪具有给定主键值的实体,则会立即返回该实体,而不会向数据库发出请求。 否则,将查询具有给定主键值的实体的数据库,如果找到此实体,则会附加到上下文并返回。 如果未找到任何实体,则返回 null。 |
FindAsync(Object[], CancellationToken) |
查找带给定主键值的实体。 如果上下文正在跟踪具有给定主键值的实体,则会立即返回该实体,而不会向数据库发出请求。 否则,将查询具有给定主键值的实体的数据库,如果找到此实体,则会附加到上下文并返回。 如果未找到任何实体,则返回 null。 |
GetAsyncEnumerator(CancellationToken) |
返回一个 , IAsyncEnumerator<T> 枚举时将对数据库异步执行查询。 |
Remove(TEntity) |
开始跟踪处于 状态的给定实体,以便调用 时SaveChanges(),该实体Deleted将从数据库中删除。 |
RemoveRange(IEnumerable<TEntity>) |
开始跟踪处于 状态 Deleted 的给定实体,以便在调用 时 SaveChanges() 将其从数据库中删除。 |
RemoveRange(TEntity[]) |
开始跟踪处于 状态 Deleted 的给定实体,以便在调用 时 SaveChanges() 将其从数据库中删除。 |
Update(TEntity) |
默认情况下,使用 状态开始跟踪给定实体和可从给定实体 Modified 访问的条目,但有关将使用不同的状态的情况,请参阅下文。 |
UpdateRange(IEnumerable<TEntity>) |
默认情况下,使用 状态开始跟踪可从给定实体访问的给定实体 Modified 和条目,但有关将使用不同的状态的情况,请参阅下文。 |
UpdateRange(TEntity[]) |
默认情况下,使用 状态开始跟踪可从给定实体访问的给定实体 Modified 和条目,但有关将使用不同的状态的情况,请参阅下文。 |
显式接口实现
IAsyncEnumerable<TEntity>.GetAsyncEnumerator(CancellationToken) |
返回一个 , IAsyncEnumerator<T> 枚举时将对数据库异步执行查询。 |
IAsyncEnumerableAccessor<TEntity>.AsyncEnumerable |
返回一个 , IAsyncEnumerable<T> 枚举时将针对数据库异步执行查询。 |
IEnumerable.GetEnumerator() |
返回一个 , IEnumerator 枚举时将对数据库执行查询,以从数据库加载所有实体。 |
IEnumerable<TEntity>.GetEnumerator() |
返回一个 , IEnumerator<T> 枚举时将对数据库执行查询,以从数据库加载所有实体。 |
IInfrastructure<IServiceProvider>.Instance |
获取用于解析服务的作用域 IServiceProvider 。 |
IListSource.ContainsListCollection |
获取一个值,该值指示集合是否为 System.Collections.IList 对象的集合。
始终返回 |
IListSource.GetList() |
当尝试将数据直接 DbSet<TEntity>绑定到 时,数据绑定框架会调用此方法。 |
IQueryable.ElementType |
获取 IQueryable 元素类型。 |
IQueryable.Expression |
获取 IQueryable LINQ 表达式。 |
IQueryable.Provider |
获取 IQueryable 提供程序。 |