DbContext 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
DbCoNtext 實例代表工作單位和存放庫模式的組合,以便用來從資料庫查詢,並將變更群組在一起,然後將變更寫回存放區做為單位。 DbCoNtext 在概念上類似于 ObjectCoNtext。
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Justification="Casing is intentional")]
public class DbContext : IDisposable, System.Data.Entity.Infrastructure.IObjectContextAdapter
public class DbContext : IDisposable, System.Data.Entity.Infrastructure.IObjectContextAdapter
type DbContext = class
interface IDisposable
interface IObjectContextAdapter
Public Class DbContext
Implements IDisposable, IObjectContextAdapter
- 繼承
-
DbContext
- 衍生
- 屬性
- 實作
備註
DbCoNtext 通常與衍生類型搭配使用,其中包含 DbSet<TEntity> 模型根實體的屬性。 當建立衍生類別的執行個體時,這些集合會自動初始化。 您可以將 屬性套用至整個衍生內容類別別,或套用 SuppressDbSetInitializationAttribute 至 類別上的個別屬性,即可修改此行為。 支援此內容的實體資料模型可以使用幾個方式來指定。 使用 Code First 方法時, DbSet<TEntity> 衍生內容上的屬性會用來依慣例建置模型。 受保護的 OnModelCreating 方法可以覆寫以調整此模型。 您可以藉由從 明確建立 DbCompiledModel , DbModelBuilder 並將此模型傳遞至其中一個 DbCoNtext 建構函式,以取得對用於 Model First 方法之模型的更多控制權。 使用 Database First 或 Model First 方法時,可以使用實體Designer (建立實體資料模型,或透過建立 EDMX 檔案) 手動建立,然後使用實體連接字串或 EntityConnection 物件來指定此模型。 可以使用幾個方法來指定資料庫的連接 (包括資料庫的名稱)。 如果從衍生內容呼叫無參數 DbCoNtext 建構函式,則會使用衍生內容的名稱來尋找 app.config 或 web.config 檔案中的連接字串。 如果找不到連接字串,則會將名稱傳遞給類別上註冊的 Database DefaultConnectionFactory。 然後連接 Factory 會使用此內容名稱當做預設連接字串中的資料庫名稱 (除非登錄不同的 DefaultConnectionFactory,否則此預設連接字串會指向本機電腦上的 .\SQLEXPRESS。) 不要使用衍生的內容名稱,您也可以將名稱傳遞至採用字串的其中一個 DbCoNtext 建構函式,明確地指定連接/資料庫名稱。 也可以使用 "name=myname" 格式傳遞名稱,這樣必須在組態檔中找到此名稱,否則將會擲回例外狀況。 請注意,在 app.config 或 web.config 檔案中找到的連接可以是一般資料庫連接字串, (不是特殊 Entity Framework 連接字串) 在此情況下,DbCoNtext 會使用 Code First。 不過,如果在組態檔中找到的連接是特殊的 Entity Framework 連接字串,則 DbCoNtext 會使用 Database/Model First,並使用連接字串中指定的模型。 也可以使用現有或明確建立的 DbConnection 來取代資料庫/連接名稱。 DbModelBuilderVersionAttribute可以套用至衍生自 DbCoNtext 的類別,以設定建立模型時內容所使用的慣例版本。 如果未套用任何屬性,則會使用最新版本的慣例。
建構函式
DbContext() |
使用慣例建構新的內容執行個體,以建立將建立連接的資料庫名稱。 依慣例名稱是衍生內容類別別) 命名空間 + 類別名稱的完整 (名稱。 請參閱類別備註,以瞭解如何使用這個 來建立連線。 |
DbContext(DbCompiledModel) |
使用慣例建構新的內容執行個體,以建立將建立連接的資料庫名稱,並從給定的模型將它初始化。 依慣例名稱是衍生內容類別別) 命名空間 + 類別名稱的完整 (名稱。 請參閱類別備註,以瞭解如何使用這個 來建立連線。 |
DbContext(DbConnection, Boolean) |
使用現有的連接來連接資料庫,以建構新的內容執行個體。
如果 |
DbContext(DbConnection, DbCompiledModel, Boolean) |
使用現有的連接連接資料庫來建構新的內容執行個體,並從給定的模型將它初始化。
如果 |
DbContext(ObjectContext, Boolean) |
在現有的 ObjectCoNtext 周圍建構新的內容實例。 |
DbContext(ObjectContext, Boolean) |
在現有的 ObjectCoNtext 周圍建構新的內容實例。 |
DbContext(String) |
使用給定字串當做資料庫的名稱或連接字串來建構新的內容執行個體 (這是將會建立連接的資料庫)。 請參閱類別備註,以瞭解如何使用這個 來建立連線。 |
DbContext(String, DbCompiledModel) |
使用給定字串當做資料庫的名稱或連接字串來建構新的內容執行個體 (這是將會建立連接的資料庫),並從給定的模型將它初始化。 請參閱類別備註,以瞭解如何使用這個 來建立連線。 |
屬性
ChangeTracker |
針對處理實體變更追蹤的內容功能提供存取權。 |
Configuration |
為內容的組態選項提供存取權。 |
Database |
建立此內容的資料庫實例,允許建立/刪除/存在檢查基礎資料庫。 |
方法
Dispose() |
呼叫受保護的 Dispose 方法。 |
Dispose(Boolean) |
處置內容。 如果建立基礎 ObjectContext 是由此內容所建立,或建立此內容時已將擁有權傳遞給此內容,則也會處置基礎。 如果資料庫 (物件) DbConnection 的連線是由此內容所建立,或建立此內容時已將擁有權傳遞給此內容,也會加以處置。 |
Entry(Object) |
DbEntityEntry取得指定實體的 物件,提供實體相關資訊的存取權,以及對實體執行動作的能力。 |
Entry<TEntity>(TEntity) |
DbEntityEntry<TEntity>取得指定實體的 物件,提供實體相關資訊的存取權,以及對實體執行動作的能力。 |
Equals(Object) |
DbCoNtext 實例代表工作單位和存放庫模式的組合,以便用來從資料庫查詢,並將變更群組在一起,然後將變更寫回存放區做為單位。 DbCoNtext 在概念上類似于 ObjectCoNtext。 |
GetHashCode() |
DbCoNtext 實例代表工作單位和存放庫模式的組合,以便用來從資料庫查詢,並將變更群組在一起,然後將變更寫回存放區做為單位。 DbCoNtext 在概念上類似于 ObjectCoNtext。 |
GetType() |
DbCoNtext 實例代表工作單位和存放庫模式的組合,以便用來從資料庫查詢,並將變更群組在一起,然後將變更寫回存放區做為單位。 DbCoNtext 在概念上類似于 ObjectCoNtext。 |
GetValidationErrors() |
驗證追蹤的實體,並傳回包含驗證結果的 DbEntityValidationResult 集合。 |
OnModelCreating(DbModelBuilder) |
這個方法的呼叫時機是在初始化衍生內容的模型時,但在鎖定此模型及使用此模型初始化內容之前。 這個方法的預設實作不會做任何事,但是可以在衍生類別中覆寫它,以便可以進一步設定此模型然後再將它鎖定。 |
SaveChanges() |
將此內容中所做的所有變更儲存到基礎資料庫。 |
SaveChangesAsync() |
以非同步方式將此內容中所做的所有變更儲存至基礎資料庫。 |
SaveChangesAsync(CancellationToken) |
以非同步方式將此內容中所做的所有變更儲存至基礎資料庫。 |
Set(Type) |
傳回非泛型 DbSet 實例,以存取內容和基礎存放區中指定型別的實體。 |
Set<TEntity>() |
傳 DbSet<TEntity> 回 實例,以存取內容和基礎存放區中指定型別的實體。 |
ShouldValidateEntity(DbEntityEntry) |
擴充點可讓使用者覆寫只驗證 added 和 modified 實體的預設行為。 |
ToString() |
DbCoNtext 實例代表工作單位和存放庫模式的組合,以便用來從資料庫查詢,並將變更群組在一起,然後將變更寫回存放區做為單位。 DbCoNtext 在概念上類似于 ObjectCoNtext。 |
ValidateEntity(DbEntityEntry, IDictionary<Object,Object>) |
擴充點可讓使用者自訂實體驗證或篩選出驗證結果的行為。 由 GetValidationErrors() 呼叫。 |
明確介面實作
IObjectContextAdapter.ObjectContext |
會傳回此內容基礎的 Entity Framework ObjectCoNtext。 |