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
- 屬性
屬性
CommandTimeout |
取得或設定所有內容作業的逾時值,以秒為單位。 預設值為 null,其中 null 表示將使用基礎提供者的預設值。 |
Connection |
傳回這個內容正在使用的連接。 如果連線不存在,可能會導致建立連線。 |
CurrentTransaction |
取得基礎存放區連接登記所在的交易。 可能是 Null。 |
DefaultConnectionFactory |
已淘汰.
從資料庫名稱或連接字串建立 DbConnection 時要使用的連接處理站。 |
Log |
將此屬性設定為將 所產生的 DbContext SQL 記錄至指定的委派。 例如,若要登入主控台,請將此屬性設定為 Write(String) 。 |
方法
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 WHERE Author = @p0 「, userSuppliedAuthor) ;或者,您也可以建構 DbParameter,並將它提供給 SqlQuery。 這可讓您在 SQL 查詢字串中使用具名參數。 上下文。Database.ExecuteSqlCommand (「UPDATE dbo.文章 SET 評等 = 5 WHERE Author = @author 「, new SqlParameter (」@author「, userSuppliedAuthor) ) ; |
ExecuteSqlCommand(TransactionalBehavior, String, Object[]) |
針對資料庫執行給定的 DDL/DML 命令。 如同任何接受 SQL 的 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter。 上下文。Database.ExecuteSqlCommand (「UPDATE dbo.文章 SET 評等 = 5 WHERE Author = @p0 「, userSuppliedAuthor) ;或者,您也可以建構 DbParameter,並將它提供給 SqlQuery。 這可讓您在 SQL 查詢字串中使用具名參數。 上下文。Database.ExecuteSqlCommand (「UPDATE dbo.文章 SET 評等 = 5 WHERE Author = @author 「, new SqlParameter (」@author「, userSuppliedAuthor) ) ; |
ExecuteSqlCommandAsync(String, CancellationToken, Object[]) |
以非同步方式對資料庫執行指定的 DDL/DML 命令。 如同任何接受 SQL 的 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter。 上下文。Database.ExecuteSqlCommandAsync (「UPDATE dbo.文章 SET 評等 = 5 WHERE Author = @p0 「, userSuppliedAuthor) ;或者,您也可以建構 DbParameter,並將它提供給 SqlQuery。 這可讓您在 SQL 查詢字串中使用具名參數。 上下文。Database.ExecuteSqlCommandAsync (「UPDATE dbo.文章 SET 評等 = 5 WHERE Author = @author 「, new SqlParameter (」@author「, userSuppliedAuthor) ) ; |
ExecuteSqlCommandAsync(String, Object[]) |
以非同步方式對資料庫執行指定的 DDL/DML 命令。 如同任何接受 SQL 的 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter。 上下文。Database.ExecuteSqlCommandAsync (「UPDATE dbo.文章 SET 評等 = 5 WHERE Author = @p0 「, userSuppliedAuthor) ;或者,您也可以建構 DbParameter,並將它提供給 SqlQuery。 這可讓您在 SQL 查詢字串中使用具名參數。 上下文。Database.ExecuteSqlCommandAsync (「UPDATE dbo.文章 SET 評等 = 5 WHERE Author = @author 「, new SqlParameter (」@author「, userSuppliedAuthor) ) ; |
ExecuteSqlCommandAsync(TransactionalBehavior, String, CancellationToken, Object[]) |
以非同步方式對資料庫執行指定的 DDL/DML 命令。 如同任何接受 SQL 的 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter。 上下文。Database.ExecuteSqlCommandAsync (「UPDATE dbo.文章 SET 評等 = 5 WHERE Author = @p0 「, userSuppliedAuthor) ;或者,您也可以建構 DbParameter,並將它提供給 SqlQuery。 這可讓您在 SQL 查詢字串中使用具名參數。 上下文。Database.ExecuteSqlCommandAsync (「UPDATE dbo.文章 SET 評等 = 5 WHERE Author = @author 「, new SqlParameter (」@author「, userSuppliedAuthor) ) ; |
ExecuteSqlCommandAsync(TransactionalBehavior, String, Object[]) |
以非同步方式對資料庫執行指定的 DDL/DML 命令。 如同任何接受 SQL 的 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter。 上下文。Database.ExecuteSqlCommandAsync (「UPDATE dbo.文章 SET 評等 = 5 WHERE Author = @p0 「, userSuppliedAuthor) ;或者,您也可以建構 DbParameter,並將它提供給 SqlQuery。 這可讓您在 SQL 查詢字串中使用具名參數。 上下文。Database.ExecuteSqlCommandAsync (「UPDATE dbo.文章 SET 評等 = 5 WHERE Author = @author 「, new SqlParameter (」@author「, userSuppliedAuthor) ) ; |
Exists() |
檢查資料庫是否存在伺服器上。 |
Exists(DbConnection) |
檢查資料庫是否存在伺服器上。 |
Exists(String) |
檢查資料庫是否存在伺服器上。 使用指定的資料庫名稱或連接字串來建立資料庫的連線,方式與 類別的檔 DbContext 中所述相同。 |
GetHashCode() |
這個類別的實例是從 DbContext 物件取得,可用來管理支援 DbCoNtext 或連接的實際資料庫。 其中包括建立和刪除資料庫及檢查資料庫是否存在。 請注意,只要使用連接 (即可執行刪除和檢查資料庫是否存在,亦即使用這個類別的靜態方法,而不需完整內容) 。 |
GetType() |
取得目前執行個體的 Type。 |
Initialize(Boolean) |
執行在此內容上註冊 IDatabaseInitializer<TContext> 的 。 如果 「force」 設定為 true,則不論初始化運算式是否已在之前執行,都會執行初始化運算式。 如果在應用程式執行時刪除資料庫而且需要重新初始化,這樣的處理方式會很實用。 如果 「force」 設定為 false,則只有在尚未針對此內容、模型和此應用程式域中的連接執行初始化運算式時,才會執行。 這個方法通常用來確保資料庫已建立並植入,再啟動一些作業延遲會導致問題,例如當作業是交易的一部分時。 |
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) |
如果您希望 Entity Framework 在該外部交易內執行命令,讓使用者傳入物件外部 Database 建立的資料庫交易。 或者,傳入 null 以清除架構對該交易的知識。 |