語言

Database 類別

定義

此類別的實例可從物件 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 以清除框架對該交易的知識。

適用於