Database 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
此類別的實例可從物件 DbContext 取得,並可用來管理支援 DbContext 或連線的實際資料庫。 這包括建立、刪除以及檢查資料庫的存在。 請注意,刪除與檢查資料庫是否存在,可以透過僅使用連線(即不包含完整上下文)來完成,方法是使用此類別的靜態方法。
public class Database
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification="The DbContextTransaction and EntityTransaction should never be disposed by this class")]
public class Database
type Database = class
Public Class Database
- 繼承
-
Database
- 屬性
屬性
| 名稱 | Description |
|---|---|
| CommandTimeout |
取得或設定所有上下文操作的逾時值,單位為秒。 預設值為 null,其中 null 表示將使用底層提供者的預設值。 |
| Connection |
回傳此上下文所使用的連線。 如果連結尚未存在,這可能導致該連結被建立。 |
| CurrentTransaction |
取得底層儲存連結所列入的交易。 可以為 null。 |
| DefaultConnectionFactory |
已淘汰.
連線工廠在建立 A 時DbConnection,只需從資料庫名稱或 連接字串 即可。 |
| Log |
設定這個屬性,將由 DbContext 產生的 SQL 記錄給指定的代理。 例如,要登入主控台,將此屬性設為 Write(String)。 |
方法
| 名稱 | Description |
|---|---|
| BeginTransaction() |
在底層儲存連線上開始交易 |
| BeginTransaction(IsolationLevel) |
在底層儲存連線上開始交易,使用指定的隔離層級 |
| CompatibleWithModel(Boolean) |
檢查資料庫是否與目前的 Code First 模式相容。 |
| Create() |
在資料庫伺服器上建立一個新的資料庫,以支援背景中定義的模型。 請注意,在資料庫初始化策略執行前呼叫此方法會使執行該策略無法執行。 |
| CreateIfNotExists() |
在資料庫伺服器上建立一個新的資料庫,以符合底層上下文中定義的模型,但前提是伺服器上尚未存在同名資料庫。 |
| Delete() |
如果資料庫存在,就會刪除資料庫伺服器,否則什麼都沒做。 從初始化器外部呼叫此方法會標記資料庫尚未初始化。 這表示如果在資料庫被刪除後嘗試再次使用,任何初始化器集都會再次執行,且通常會自動嘗試重新建立資料庫。 |
| Delete(DbConnection) |
如果資料庫存在,就會刪除資料庫伺服器,否則什麼都沒做。 |
| Delete(String) |
如果資料庫存在,就會刪除資料庫伺服器,否則什麼都沒做。 與資料庫的連線是以給定的資料庫名稱或 連接字串 建立,方式與類別文件DbContext中描述相同。 |
| Equals(Object) |
此類別的實例可從物件 DbContext 取得,並可用來管理支援 DbContext 或連線的實際資料庫。 這包括建立、刪除以及檢查資料庫的存在。 請注意,刪除與檢查資料庫是否存在,可以透過僅使用連線(即不包含完整上下文)來完成,方法是使用此類別的靜態方法。 |
| ExecuteSqlCommand(String, Object[]) |
對資料庫執行給定的 DDL/DML 指令。 和任何接受 SQL 的 API 一樣,必須對使用者輸入進行參數化,以防止 SQL 注入攻擊。 你可以在 SQL 查詢字串中加入參數佔位符,然後以參數值作為額外參數。 你提供的任何參數值都會自動轉換成 DbParameter。 背景說明。Database.ExecuteSqlCommand(“UPDATE dbo.貼文 SET 評分 = 5 其中作者 = @p0“, userSuppliedAuthor);或者,你也可以建構一個 DbParameter 並提供給 SqlQuery。 這讓你可以在 SQL 查詢字串中使用命名參數。 背景說明。Database.ExecuteSqlCommand(“UPDATE dbo.貼文 SET 評分 = 5 其中作者 = @author“,新 SqlParameter(”@author“,userSuppliedAuthor)); |
| ExecuteSqlCommand(TransactionalBehavior, String, Object[]) |
對資料庫執行給定的 DDL/DML 指令。 和任何接受 SQL 的 API 一樣,必須對使用者輸入進行參數化,以防止 SQL 注入攻擊。 你可以在 SQL 查詢字串中加入參數佔位符,然後以參數值作為額外參數。 你提供的任何參數值都會自動轉換成 DbParameter。 背景說明。Database.ExecuteSqlCommand(“UPDATE dbo.貼文 SET 評分 = 5 其中作者 = @p0“, userSuppliedAuthor);或者,你也可以建構一個 DbParameter 並提供給 SqlQuery。 這讓你可以在 SQL 查詢字串中使用命名參數。 背景說明。Database.ExecuteSqlCommand(“UPDATE dbo.貼文 SET 評分 = 5 其中作者 = @author“,新 SqlParameter(”@author“,userSuppliedAuthor)); |
| ExecuteSqlCommandAsync(String, CancellationToken, Object[]) |
非同步執行給定的 DDL/DML 指令對資料庫。 和任何接受 SQL 的 API 一樣,必須對使用者輸入進行參數化,以防止 SQL 注入攻擊。 你可以在 SQL 查詢字串中加入參數佔位符,然後以參數值作為額外參數。 你提供的任何參數值都會自動轉換成 DbParameter。 背景說明。Database.ExecuteSqlCommandAsync(“UPDATE dbo.貼文 SET 評分 = 5 其中作者 = @p0“, userSuppliedAuthor);或者,你也可以建構一個 DbParameter 並提供給 SqlQuery。 這讓你可以在 SQL 查詢字串中使用命名參數。 背景說明。Database.ExecuteSqlCommandAsync(“UPDATE dbo.貼文 SET 評分 = 5 其中作者 = @author“,新 SqlParameter(”@author“,userSuppliedAuthor)); |
| ExecuteSqlCommandAsync(String, Object[]) |
非同步執行給定的 DDL/DML 指令對資料庫。 和任何接受 SQL 的 API 一樣,必須對使用者輸入進行參數化,以防止 SQL 注入攻擊。 你可以在 SQL 查詢字串中加入參數佔位符,然後以參數值作為額外參數。 你提供的任何參數值都會自動轉換成 DbParameter。 背景說明。Database.ExecuteSqlCommandAsync(“UPDATE dbo.貼文 SET 評分 = 5 其中作者 = @p0“, userSuppliedAuthor);或者,你也可以建構一個 DbParameter 並提供給 SqlQuery。 這讓你可以在 SQL 查詢字串中使用命名參數。 背景說明。Database.ExecuteSqlCommandAsync(“UPDATE dbo.貼文 SET 評分 = 5 其中作者 = @author“,新 SqlParameter(”@author“,userSuppliedAuthor)); |
| ExecuteSqlCommandAsync(TransactionalBehavior, String, CancellationToken, Object[]) |
非同步執行給定的 DDL/DML 指令對資料庫。 和任何接受 SQL 的 API 一樣,必須對使用者輸入進行參數化,以防止 SQL 注入攻擊。 你可以在 SQL 查詢字串中加入參數佔位符,然後以參數值作為額外參數。 你提供的任何參數值都會自動轉換成 DbParameter。 背景說明。Database.ExecuteSqlCommandAsync(“UPDATE dbo.貼文 SET 評分 = 5 其中作者 = @p0“, userSuppliedAuthor);或者,你也可以建構一個 DbParameter 並提供給 SqlQuery。 這讓你可以在 SQL 查詢字串中使用命名參數。 背景說明。Database.ExecuteSqlCommandAsync(“UPDATE dbo.貼文 SET 評分 = 5 其中作者 = @author“,新 SqlParameter(”@author“,userSuppliedAuthor)); |
| ExecuteSqlCommandAsync(TransactionalBehavior, String, Object[]) |
非同步執行給定的 DDL/DML 指令對資料庫。 和任何接受 SQL 的 API 一樣,必須對使用者輸入進行參數化,以防止 SQL 注入攻擊。 你可以在 SQL 查詢字串中加入參數佔位符,然後以參數值作為額外參數。 你提供的任何參數值都會自動轉換成 DbParameter。 背景說明。Database.ExecuteSqlCommandAsync(“UPDATE dbo.貼文 SET 評分 = 5 其中作者 = @p0“, userSuppliedAuthor);或者,你也可以建構一個 DbParameter 並提供給 SqlQuery。 這讓你可以在 SQL 查詢字串中使用命名參數。 背景說明。Database.ExecuteSqlCommandAsync(“UPDATE dbo.貼文 SET 評分 = 5 其中作者 = @author“,新 SqlParameter(”@author“,userSuppliedAuthor)); |
| Exists() |
檢查資料庫是否存在於伺服器上。 |
| Exists(DbConnection) |
檢查資料庫是否存在於伺服器上。 |
| Exists(String) |
檢查資料庫是否存在於伺服器上。 與資料庫的連線是以給定的資料庫名稱或 連接字串 建立,方式與類別文件DbContext中描述相同。 |
| GetHashCode() |
此類別的實例可從物件 DbContext 取得,並可用來管理支援 DbContext 或連線的實際資料庫。 這包括建立、刪除以及檢查資料庫的存在。 請注意,刪除與檢查資料庫是否存在,可以透過僅使用連線(即不包含完整上下文)來完成,方法是使用此類別的靜態方法。 |
| GetType() |
取得目前實例的 Type。 |
| Initialize(Boolean) |
在這個情境下執行註冊的。IDatabaseInitializer<TContext> 如果「force」設為 true,則無論初始化器是否已被執行,都會執行。 當應用程式執行時資料庫被刪除,需要重新初始化時,這會非常有用。 如果「force」設為 false,則只有在該 app 網域中尚未為該上下文、模型和連線執行過初始化工具時才會執行。 此方法通常用於需要確保資料庫已建立並做種後,才開始某些操作,若懶惰地進行會引發問題,例如該操作屬於交易的一部分。 |
| SetInitializer<TContext>(IDatabaseInitializer<TContext>) |
設定資料庫初始化器以用於給定的上下文類型。 當首次使用指定 DbContext 類型存取資料庫時,會呼叫資料庫初始化器。 Code First 上下文的預設策略是 的 CreateDatabaseIfNotExists<TContext>實例。 |
| SqlQuery(Type, String, Object[]) |
建立一個原始 SQL 查詢,回傳給定類型的元素。 該型別可以是任何屬性與查詢回傳欄位名稱相符的型別,或是簡單的原始型態。 類型不一定要是實體類型。 即使回傳的物件類型是實體型別,這個查詢的結果也不會被上下文追蹤。 使用該 SqlQuery(String, Object[]) 方法回傳被上下文追蹤的實體。 |
| SqlQuery<TElement>(String, Object[]) |
建立一個原始的 SQL 查詢,回傳給定的通用型別元素。 該型別可以是任何屬性與查詢回傳欄位名稱相符的型別,或是簡單的原始型態。 類型不一定要是實體類型。 即使回傳的物件類型是實體型別,這個查詢的結果也不會被上下文追蹤。 使用該 SqlQuery(String, Object[]) 方法回傳被上下文追蹤的實體。 |
| ToString() |
此類別的實例可從物件 DbContext 取得,並可用來管理支援 DbContext 或連線的實際資料庫。 這包括建立、刪除以及檢查資料庫的存在。 請注意,刪除與檢查資料庫是否存在,可以透過僅使用連線(即不包含完整上下文)來完成,方法是使用此類別的靜態方法。 |
| UseTransaction(DbTransaction) |
如果你想讓實體框架在該外部交易中執行指令,使用者可以將該 Database 資料庫交易傳遞進去。 或者,輸入 null 以清除框架對該交易的知識。 |