DatabaseFacade 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供內容之資料庫相關資訊和作業的存取權。 這個類別的實例通常是從 Database 取得的,而且不是設計成直接在應用程式程式碼中建構。
public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>
public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Internal.IDatabaseFacadeDependenciesAccessor
public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Storage.IDatabaseFacadeDependenciesAccessor
public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Infrastructure.IResettableService, Microsoft.EntityFrameworkCore.Storage.IDatabaseFacadeDependenciesAccessor
type DatabaseFacade = class
interface IInfrastructure<IServiceProvider>
type DatabaseFacade = class
interface IInfrastructure<IServiceProvider>
interface IDatabaseFacadeDependenciesAccessor
type DatabaseFacade = class
interface IInfrastructure<IServiceProvider>
interface IDatabaseFacadeDependenciesAccessor
interface IResettableService
Public Class DatabaseFacade
Implements IInfrastructure(Of IServiceProvider)
Public Class DatabaseFacade
Implements IDatabaseFacadeDependenciesAccessor, IInfrastructure(Of IServiceProvider)
Public Class DatabaseFacade
Implements IDatabaseFacadeDependenciesAccessor, IInfrastructure(Of IServiceProvider), IResettableService
- 繼承
-
DatabaseFacade
- 實作
-
IInfrastructure<IServiceProvider> Microsoft.EntityFrameworkCore.Internal.IDatabaseFacadeDependenciesAccessor IDatabaseFacadeDependenciesAccessor IResettableService
建構函式
DatabaseFacade(DbContext) |
初始化 DatabaseFacade 類別的新執行個體。 這個類別的實例通常是從 Database 中取得,而且不是設計成直接在應用程式程式碼中建構。 |
屬性
AutoSavepointsEnabled |
如果在以 手動方式啟動 BeginTransaction() 交易之後呼叫交易,是否會自動 SaveChanges() 建立交易儲存點。 |
AutoTransactionBehavior |
取得或設定值,指出如果未呼叫 'BeginTransaction' 或 'UseTransaction',是否會自動 SaveChanges() 建立交易。 |
AutoTransactionsEnabled |
已淘汰.
已淘汰.
取得或設定值,指出如果未呼叫 'BeginTransaction' 或 'UseTransaction' 方法,是否會自動 SaveChanges() 建立交易。 |
CurrentTransaction |
取得內容所使用的目前 IDbContextTransaction ,如果沒有使用任何交易,則為 null。 |
ProviderName |
傳回目前使用中的資料庫提供者名稱。 名稱通常是提供者元件的名稱。 使用 sugar 方法通常比較容易,例如 Microsoft.EntityFrameworkCore.SqlServerDatabaseFacadeExtensions.IsSqlServer ,而不是直接呼叫此方法。 |
方法
BeginTransaction() |
啟動新的交易。 |
BeginTransactionAsync(CancellationToken) |
以非同步方式啟動新的交易。 |
CanConnect() |
判斷資料庫是否可用且可連線。 |
CanConnectAsync(CancellationToken) |
判斷資料庫是否可用且可連線。 |
CommitTransaction() |
將目前交易中的未完成作業套用至資料庫。 |
CommitTransactionAsync(CancellationToken) |
將目前交易中的未完成作業套用至資料庫。 |
CreateExecutionStrategy() |
建立已設定 IExecutionStrategy 的 實例。 |
EnsureCreated() |
確定內容的資料庫存在。 |
EnsureCreatedAsync(CancellationToken) |
確定內容的資料庫存在。 |
EnsureDeleted() |
確定內容的資料庫不存在。 如果不存在,則不會採取任何動作。 如果存在,則會刪除資料庫。 警告:刪除整個資料庫,而且不努力只移除模型用於此內容的資料庫物件。 |
EnsureDeletedAsync(CancellationToken) |
以非同步方式確保內容的資料庫不存在。 如果不存在,則不會採取任何動作。 如果存在,則會刪除資料庫。 警告:刪除整個資料庫,而且不努力只移除模型用於此內容的資料庫物件。 |
RollbackTransaction() |
捨棄目前交易中的未完成作業。 |
RollbackTransactionAsync(CancellationToken) |
捨棄目前交易中的未完成作業。 |
明確介面實作
IDatabaseFacadeDependenciesAccessor.Context |
這是支援 Entity Framework Core 基礎結構的內部 API,不受與公用 API 相同的相容性標準。 它可能會在任何版本中變更或移除,而不會有任何通知。 您應該只在程式碼中直接使用它,並知道這麼做可能會導致應用程式在更新至新的 Entity Framework Core 版本時失敗。 |
IDatabaseFacadeDependenciesAccessor.Dependencies |
這是支援 Entity Framework Core 基礎結構的內部 API,不受與公用 API 相同的相容性標準。 它可能會在任何版本中變更或移除,而不會有任何通知。 您應該只在程式碼中直接使用它,並知道這麼做可能會導致應用程式在更新至新的 Entity Framework Core 版本時失敗。 |
IInfrastructure<IServiceProvider>.Instance |
取得用來解析服務的範圍 IServiceProvider 。 此屬性適用于需要利用公用 API 介面中未直接公開之服務的擴充方法。 |
IResettableService.ResetState() |
重設服務,使其可從集區使用。 |
IResettableService.ResetStateAsync(CancellationToken) |
提供內容之資料庫相關資訊和作業的存取權。 這個類別的實例通常是從 Database 取得的,而且不是設計成直接在應用程式程式碼中建構。 |
擴充方法
GetCosmosClient(DatabaseFacade) |
取得這個 DbContext 的基礎 CosmosClient 。 |
GetCosmosDatabaseId(DatabaseFacade) |
取得這個 DbContext 的已設定資料庫名稱。 |
IsCosmos(DatabaseFacade) |
|
GetInfrastructure<T>(IInfrastructure<T>) |
從使用 IInfrastructure<T> 隱藏的屬性取得值。 這個方法通常由資料庫提供者使用, (和其他延伸模組) 。 它通常不會用於應用程式程式碼中。 |
IsInMemory(DatabaseFacade) |
|
BeginTransaction(DatabaseFacade, IsolationLevel) |
使用指定的 IsolationLevel 啟動新的交易。 |
BeginTransactionAsync(DatabaseFacade, IsolationLevel, CancellationToken) |
以非同步方式啟動具有指定 IsolationLevel 的新交易。 |
CloseConnection(DatabaseFacade) |
關閉基礎 DbConnection 。 |
CloseConnectionAsync(DatabaseFacade) |
關閉基礎 DbConnection 。 |
ExecuteSql(DatabaseFacade, FormattableString) |
針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。 |
ExecuteSqlAsync(DatabaseFacade, FormattableString, CancellationToken) |
針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。 |
ExecuteSqlCommand(DatabaseFacade, RawSqlString, IEnumerable<Object>) |
已淘汰.
針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。 請注意,這個方法不會啟動交易。 若要搭配交易使用這個方法,請先呼叫 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction(DatabaseFacade, DbTransaction) 。 請注意,此方法不會使用目前的 ExecutionStrategy ,因為 SQL 可能不是等冪,而且不會在交易中執行。 可以明確使用 ExecutionStrategy,如果 SQL 不是等冪性,請務必也使用交易。 如同接受 SQL 的任何 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter。 您也可以考慮使用 ExecuteSqlInterpolated 來使用插補字串語法來建立參數。 |
ExecuteSqlCommand(DatabaseFacade, RawSqlString, Object[]) |
已淘汰.
針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。 請注意,這個方法不會啟動交易。 若要搭配交易使用這個方法,請先呼叫 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction(DatabaseFacade, DbTransaction) 。 請注意,此方法不會使用目前的 ExecutionStrategy ,因為 SQL 可能不是等冪,而且不會在交易中執行。 可以明確使用 ExecutionStrategy,如果 SQL 不是等冪性,請務必也使用交易。
如同接受 SQL 的任何 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter - |
ExecuteSqlCommand(DatabaseFacade, FormattableString) |
已淘汰.
針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。 請注意,這個方法不會啟動交易。 若要搭配交易使用這個方法,請先呼叫 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction(DatabaseFacade, DbTransaction) 。 請注意,此方法不會使用目前的 ExecutionStrategy ,因為 SQL 可能不是等冪,而且不會在交易中執行。 可以明確使用 ExecutionStrategy,如果 SQL 不是等冪性,請務必也使用交易。
如同接受 SQL 的任何 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter - |
ExecuteSqlCommand(DatabaseFacade, String, Object[]) |
提供內容之資料庫相關資訊和作業的存取權。 這個類別的實例通常是從 Database 取得的,而且不是設計成直接在應用程式程式碼中建構。 |
ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, IEnumerable<Object>, CancellationToken) |
已淘汰.
針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。 請注意,這個方法不會啟動交易。 若要搭配交易使用這個方法,請先呼叫 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction(DatabaseFacade, DbTransaction) 。 請注意,此方法不會使用目前的 ExecutionStrategy ,因為 SQL 可能不是等冪,而且不會在交易中執行。 可以明確使用 ExecutionStrategy,如果 SQL 不是等冪性,請務必也使用交易。 如同接受 SQL 的任何 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter。 您也可以考慮使用 ExecuteSqlInterpolated 來使用插補字串語法來建立參數。 |
ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, Object[]) |
已淘汰.
針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。 請注意,這個方法不會啟動交易。 若要搭配交易使用這個方法,請先呼叫 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction(DatabaseFacade, DbTransaction) 。 請注意,此方法不會使用目前的 ExecutionStrategy ,因為 SQL 可能不是等冪,而且不會在交易中執行。 可以明確使用 ExecutionStrategy,如果 SQL 不是等冪性,請務必也使用交易。
如同接受 SQL 的任何 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter - |
ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, CancellationToken) |
已淘汰.
針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。 請注意,這個方法不會啟動交易。 若要搭配交易使用這個方法,請先呼叫 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction(DatabaseFacade, DbTransaction) 。 請注意,這個方法不會使用目前的 ExecutionStrategy ,因為 SQL 可能不是等冪,也不會在交易中執行。 您可以明確使用 ExecutionStrategy,如果 SQL 不具等冪性,請務必也使用交易。
如同任何接受 SQL 的 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter - |
ExecuteSqlCommandAsync(DatabaseFacade, FormattableString, CancellationToken) |
已淘汰.
針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。 請注意,這個方法不會啟動交易。 若要搭配交易使用這個方法,請先呼叫 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction(DatabaseFacade, DbTransaction) 。 請注意,這個方法不會使用目前的 ExecutionStrategy ,因為 SQL 可能不是等冪,也不會在交易中執行。 您可以明確使用 ExecutionStrategy,如果 SQL 不具等冪性,請務必也使用交易。
如同任何接受 SQL 的 API,請務必將任何使用者輸入參數化,以防止 SQL 插入式攻擊。 您可以在 SQL 查詢字串中包含參數預留位置,然後提供參數值作為其他引數。 您提供的任何參數值都會自動轉換成 DbParameter - |
ExecuteSqlCommandAsync(DatabaseFacade, String, CancellationToken, Object[]) |
提供內容之資料庫相關資訊和作業的存取權。 這個類別的實例通常是從 Database 取得的,而且不是設計成直接在應用程式程式碼中建構。 |
ExecuteSqlInterpolated(DatabaseFacade, FormattableString) |
針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。 |
ExecuteSqlInterpolatedAsync(DatabaseFacade, FormattableString, CancellationToken) |
針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。 |
ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>) |
針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。 |
ExecuteSqlRaw(DatabaseFacade, String, Object[]) |
針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。 |
ExecuteSqlRawAsync(DatabaseFacade, String, IEnumerable<Object>, CancellationToken) |
針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。 |
ExecuteSqlRawAsync(DatabaseFacade, String, Object[]) |
針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。 |
ExecuteSqlRawAsync(DatabaseFacade, String, CancellationToken) |
針對資料庫執行指定的 SQL,並傳回受影響的資料列數目。 |
GenerateCreateScript(DatabaseFacade) |
產生腳本以建立目前模型的所有資料表。 |
GetAppliedMigrations(DatabaseFacade) |
取得已套用至目標資料庫的所有移轉。 |
GetAppliedMigrationsAsync(DatabaseFacade, CancellationToken) |
以非同步方式取得已套用至目標資料庫的所有移轉。 |
GetCommandTimeout(DatabaseFacade) |
針對以這個 DbContext 執行的命令,傳回以秒為單位的逾時 () 設定。 |
GetConnectionString(DatabaseFacade) |
取得為此 DbContext 設定的基礎連接字串。 |
GetDbConnection(DatabaseFacade) |
取得這個 DbContext 的基礎 ADO.NET DbConnection 。 |
GetMigrations(DatabaseFacade) |
取得已設定移轉元件中定義的所有移轉。 |
GetPendingMigrations(DatabaseFacade) |
取得元件中定義但尚未套用至目標資料庫的所有移轉。 |
GetPendingMigrationsAsync(DatabaseFacade, CancellationToken) |
以非同步方式取得元件中定義但尚未套用至目標資料庫的所有移轉。 |
HasPendingModelChanges(DatabaseFacade) |
如果模型有要套用的暫止變更,則傳 |
IsRelational(DatabaseFacade) |
|
Migrate(DatabaseFacade) |
將內容的任何擱置移轉套用至資料庫。 如果資料庫不存在,將會建立資料庫。 |
MigrateAsync(DatabaseFacade, CancellationToken) |
以非同步方式將內容的任何擱置移轉套用至資料庫。 如果資料庫不存在,將會建立資料庫。 |
OpenConnection(DatabaseFacade) |
開啟基礎 DbConnection 。 |
OpenConnectionAsync(DatabaseFacade, CancellationToken) |
開啟基礎 DbConnection 。 |
SetCommandTimeout(DatabaseFacade, Nullable<Int32>) |
設定逾時 (以秒為單位,) 用於以這個 DbContext 執行的命令。 |
SetCommandTimeout(DatabaseFacade, TimeSpan) |
設定要用於以這個 DbContext 執行之命令的逾時。 |
SetConnectionString(DatabaseFacade, String) |
設定為此 DbContext 設定的基礎連接字串。 |
SetDbConnection(DatabaseFacade, DbConnection, Boolean) |
設定這個 DbContext 的基礎 ADO.NET DbConnection 。 |
SetDbConnection(DatabaseFacade, DbConnection) |
設定這個 DbContext 的基礎 ADO.NET DbConnection 。 |
SqlQuery<TResult>(DatabaseFacade, FormattableString) |
根據原始 SQL 查詢建立 LINQ 查詢,此查詢會傳回資料庫提供者原生支援的純量類型結果集。 |
SqlQueryRaw<TResult>(DatabaseFacade, String, Object[]) |
根據原始 SQL 查詢建立 LINQ 查詢,此查詢會傳回資料庫提供者原生支援的純量類型結果集。 |
UseTransaction(DatabaseFacade, DbTransaction, Guid) |
DbTransaction設定 上資料庫作業 DbContext 要使用的 。 |
UseTransaction(DatabaseFacade, DbTransaction) |
DbTransaction設定 上資料庫作業 DbContext 要使用的 。 |
UseTransactionAsync(DatabaseFacade, DbTransaction, Guid, CancellationToken) |
DbTransaction設定 上資料庫作業 DbContext 要使用的 。 |
UseTransactionAsync(DatabaseFacade, DbTransaction, CancellationToken) |
DbTransaction設定 上資料庫作業 DbContext 要使用的 。 |
IsSqlite(DatabaseFacade) |
如果目前使用中的資料庫提供者是 SQLite 提供者,則傳 |
IsSqlServer(DatabaseFacade) |
|
EnlistTransaction(DatabaseFacade, Transaction) |
指定要用於資料庫作業的現有 Transaction 。 |
GetEnlistedTransaction(DatabaseFacade) |
傳回目前登記的交易。 |