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>
備註
LINQ 查詢 DbSet<TEntity> 的結果將包含從資料庫傳回的結果,而且可能不會反映尚未保存至資料庫的內容中所做的變更。 例如,結果不會包含新加入的實體,而且可能仍然包含標示要刪除的實體。
視所使用的資料庫而定,針對 的 LINQ 查詢 DbSet<TEntity> 某些部分可能會在記憶體中評估,而不是轉譯成資料庫查詢。
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) |
開始追蹤處於狀態的 Deleted 指定實體,以便呼叫 時 SaveChanges() 會從資料庫移除它。 |
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 提供者。 |