Language

DatabaseFacade クラス

定義

コンテキストのデータベース関連情報と操作へのアクセスを提供します。 このクラスのインスタンスは通常、 Database から取得され、アプリケーション コードで直接構築するようには設計されていません。

public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>
[System.Runtime.CompilerServices.Nullable(0)]
public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Infrastructure.IResettableService, Microsoft.EntityFrameworkCore.Storage.IDatabaseFacadeDependenciesAccessor
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>
[<System.Runtime.CompilerServices.Nullable(0)>]
type DatabaseFacade = class
    interface IInfrastructure<IServiceProvider>
    interface IDatabaseFacadeDependenciesAccessor
    interface IResettableService
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), IResettableService
Public Class DatabaseFacade
Implements IDatabaseFacadeDependenciesAccessor, IInfrastructure(Of IServiceProvider)
継承
DatabaseFacade
属性
実装
IInfrastructure<IServiceProvider> IResettableService IDatabaseFacadeDependenciesAccessor Microsoft.EntityFrameworkCore.Internal.IDatabaseFacadeDependenciesAccessor

コンストラクター

Name 説明
DatabaseFacade(DbContext)

DatabaseFacade クラスの新しいインスタンスを初期化します。 このクラスのインスタンスは通常、 Database から取得され、アプリケーション コードで直接構築するようには設計されていません。

プロパティ

Name 説明
AutoSavepointsEnabled

トランザクションセーブポイントがBeginTransaction()で手動で開始された後に呼び出された場合に、SaveChanges()によってトランザクションセーブポイントが自動的に作成されるかどうか。

AutoTransactionBehavior

'BeginTransaction' と 'UseTransaction' の両方が呼び出されていない場合に、 SaveChanges() によってトランザクションが自動的に作成されるかどうかを示す値を取得または設定します。

AutoTransactionsEnabled
古い.
古い.

'BeginTransaction' メソッドまたは 'UseTransaction' メソッドが呼び出されていない場合に、トランザクションが SaveChanges() によって自動的に作成されるかどうかを示す値を取得または設定します。

CurrentTransaction

コンテキストによって使用されている現在の IDbContextTransaction を取得します。トランザクションが使用されていない場合は null を取得します。

ProviderName

現在使用中のデータベース プロバイダーの名前を返します。 通常、名前はプロバイダー アセンブリの名前です。 通常、このメソッドを直接呼び出す代わりに、 Microsoft.EntityFrameworkCore.SqlServerDatabaseFacadeExtensions.IsSqlServer などの砂糖メソッドを使用する方が簡単です。

メソッド

Name 説明
BeginTransaction()

新しいトランザクションを開始します。

BeginTransactionAsync(CancellationToken)

新しいトランザクションを非同期的に開始します。

CanConnect()

データベースが使用可能で、接続先であるかどうかを判断します。

CanConnectAsync(CancellationToken)

データベースが使用可能で、接続先であるかどうかを判断します。

CommitTransaction()

現在のトランザクションの未処理の操作をデータベースに適用します。

CommitTransactionAsync(CancellationToken)

現在のトランザクションの未処理の操作をデータベースに適用します。

CreateExecutionStrategy()

構成された IExecutionStrategyのインスタンスを作成します。

EnsureCreated()

コンテキストのデータベースが存在することを確認します。

EnsureCreatedAsync(CancellationToken)

コンテキストのデータベースが存在することを確認します。

EnsureDeleted()

コンテキストのデータベースが存在しないことを確認します。 存在しない場合、アクションは実行されません。 存在する場合は、データベースが削除されます。

警告: データベース全体が削除され、このコンテキストでモデルによって使用されるデータベース オブジェクトだけを削除する作業は行われません。

EnsureDeletedAsync(CancellationToken)

コンテキストのデータベースが存在しないことを非同期的に確認します。 存在しない場合、アクションは実行されません。 存在する場合は、データベースが削除されます。

警告: データベース全体が削除され、このコンテキストでモデルによって使用されるデータベース オブジェクトだけを削除する作業は行われません。

RollbackTransaction()

現在のトランザクションの未処理の操作を破棄します。

RollbackTransactionAsync(CancellationToken)

現在のトランザクションの未処理の操作を破棄します。

明示的なインターフェイスの実装

Name 説明
IDatabaseFacadeDependenciesAccessor.Context

これは、パブリック API と同じ互換性標準の対象ではなく、Entity Framework Core インフラストラクチャをサポートする内部 API です。 これは、任意のリリースで予告なしに変更または削除される可能性があります。 コード内で直接使用する場合は、細心の注意を払う必要があります。これを行うと、新しいEntity Framework Core リリースに更新するときにアプリケーションのエラーが発生する可能性があることを認識してください。

IDatabaseFacadeDependenciesAccessor.Dependencies

これは、パブリック API と同じ互換性標準の対象ではなく、Entity Framework Core インフラストラクチャをサポートする内部 API です。 これは、任意のリリースで予告なしに変更または削除される可能性があります。 コード内で直接使用する場合は、細心の注意を払う必要があります。これを行うと、新しいEntity Framework Core リリースに更新するときにアプリケーションのエラーが発生する可能性があることを認識してください。

IInfrastructure<IServiceProvider>.Instance

サービスの解決に使用されているスコープ付き IServiceProvider を取得します。

このプロパティは、パブリック API サーフェイスで直接公開されていないサービスを使用する必要がある拡張メソッドで使用することを目的としています。

IResettableService.ResetState()

プールから使用できるようにサービスをリセットします。

IResettableService.ResetStateAsync(CancellationToken)

コンテキストのデータベース関連情報と操作へのアクセスを提供します。 このクラスのインスタンスは通常、 Database から取得され、アプリケーション コードで直接構築するようには設計されていません。

拡張メソッド

Name 説明
AppendSessionToken(DatabaseFacade, String)

この DbContextの既定のコンテナーの複合セッション トークンを追加します。

AppendSessionTokens(DatabaseFacade, IReadOnlyDictionary<String,String>)

この DbContext のコンテナーごとに複合セッション トークンを、 sessionTokensで指定されたトークンと共に追加します。

BeginTransaction(DatabaseFacade, IsolationLevel)

特定の IsolationLevelを使用して新しいトランザクションを開始します。

BeginTransactionAsync(DatabaseFacade, IsolationLevel, CancellationToken)

特定の IsolationLevelを使用して新しいトランザクションを非同期的に開始します。

CloseConnection(DatabaseFacade)

基になる DbConnectionを閉じます。

CloseConnectionAsync(DatabaseFacade)

基になる DbConnectionを閉じます。

EnlistTransaction(DatabaseFacade, Transaction)

データベース操作に使用する既存の Transaction を指定します。

ExecuteSql(DatabaseFacade, FormattableString)

データベースに対して指定された SQL を実行し、影響を受けた行数を返します。

ExecuteSqlAsync(DatabaseFacade, FormattableString, CancellationToken)

データベースに対して指定された SQL を実行し、影響を受けた行数を返します。

ExecuteSqlCommand(DatabaseFacade, FormattableString)
古い.

データベースに対して指定された SQL を実行し、影響を受けた行数を返します。

このメソッドはトランザクションを開始しないことに注意してください。 トランザクションでこのメソッドを使用するには、最初に BeginTransaction(DatabaseFacade, IsolationLevel) または UseTransaction(DatabaseFacade, DbTransaction)を呼び出します。

SQL はべき等ではなく、トランザクションで実行されない可能性があるため、現在の ExecutionStrategy はこのメソッドでは使用されないことに注意してください。 ExecutionStrategy は明示的に使用できるため、SQL がべき等でない場合もトランザクションを使用してください。

SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するためにユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーターのプレース ホルダーを含め、パラメーター値を追加の引数として指定できます。 指定したパラメーター値は、自動的に DbParameter - context.Database.ExecuteSqlCommand($"SELECT * FROM [dbo].[SearchBlogs]({userSuppliedSearchTerm})")に変換されます。

ExecuteSqlCommand(DatabaseFacade, RawSqlString, IEnumerable<Object>)
古い.

データベースに対して指定された SQL を実行し、影響を受けた行数を返します。

このメソッドはトランザクションを開始しないことに注意してください。 トランザクションでこのメソッドを使用するには、最初に BeginTransaction(DatabaseFacade, IsolationLevel) または UseTransaction(DatabaseFacade, DbTransaction)を呼び出します。

SQL はべき等ではなく、トランザクションで実行されない可能性があるため、現在の ExecutionStrategy はこのメソッドでは使用されないことに注意してください。 ExecutionStrategy は明示的に使用できるため、SQL がべき等でない場合もトランザクションを使用してください。

SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するためにユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーターのプレース ホルダーを含め、パラメーター値を追加の引数として指定できます。 指定したパラメーター値は、自動的に DbParameter に変換されます。 ExecuteSqlInterpolated を使用して補間文字列構文を使用してパラメーターを作成することも検討できます。

ExecuteSqlCommand(DatabaseFacade, RawSqlString, Object[])
古い.

データベースに対して指定された SQL を実行し、影響を受けた行数を返します。

このメソッドはトランザクションを開始しないことに注意してください。 トランザクションでこのメソッドを使用するには、最初に BeginTransaction(DatabaseFacade, IsolationLevel) または UseTransaction(DatabaseFacade, DbTransaction)を呼び出します。

SQL はべき等ではなく、トランザクションで実行されない可能性があるため、現在の ExecutionStrategy はこのメソッドでは使用されないことに注意してください。 ExecutionStrategy は明示的に使用できるため、SQL がべき等でない場合もトランザクションを使用してください。

SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するためにユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーターのプレース ホルダーを含め、パラメーター値を追加の引数として指定できます。 指定したパラメーター値は、自動的に DbParameter - context.Database.ExecuteSqlCommand("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm)に変換されます。 ExecuteSqlInterpolated を使用して補間文字列構文を使用してパラメーターを作成することも検討できます。

ExecuteSqlCommand(DatabaseFacade, String, Object[])

コンテキストのデータベース関連情報と操作へのアクセスを提供します。 このクラスのインスタンスは通常、 Database から取得され、アプリケーション コードで直接構築するようには設計されていません。

ExecuteSqlCommandAsync(DatabaseFacade, FormattableString, CancellationToken)
古い.

データベースに対して指定された SQL を実行し、影響を受けた行数を返します。

このメソッドはトランザクションを開始しないことに注意してください。 トランザクションでこのメソッドを使用するには、最初に BeginTransaction(DatabaseFacade, IsolationLevel) または UseTransaction(DatabaseFacade, DbTransaction)を呼び出します。

SQL はべき等ではなく、トランザクションで実行されない可能性があるため、現在の ExecutionStrategy はこのメソッドでは使用されないことに注意してください。 ExecutionStrategy は明示的に使用できるため、SQL がべき等でない場合もトランザクションを使用してください。

SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するためにユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーターのプレース ホルダーを含め、パラメーター値を追加の引数として指定できます。 指定したパラメーター値は、自動的に DbParameter - context.Database.ExecuteSqlCommandAsync($"SELECT * FROM [dbo].[SearchBlogs]({userSuppliedSearchTerm})")に変換されます。

ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, CancellationToken)
古い.

データベースに対して指定された SQL を実行し、影響を受けた行数を返します。

このメソッドはトランザクションを開始しないことに注意してください。 トランザクションでこのメソッドを使用するには、最初に BeginTransaction(DatabaseFacade, IsolationLevel) または UseTransaction(DatabaseFacade, DbTransaction)を呼び出します。

SQL はべき等ではなく、トランザクションで実行されない可能性があるため、現在の ExecutionStrategy はこのメソッドでは使用されないことに注意してください。 ExecutionStrategy は明示的に使用できるため、SQL がべき等でない場合もトランザクションを使用してください。

SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するためにユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーターのプレース ホルダーを含め、パラメーター値を追加の引数として指定できます。 指定したパラメーター値は、自動的に DbParameter - context.Database.ExecuteSqlCommandAsync("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm)に変換されます。

ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, IEnumerable<Object>, CancellationToken)
古い.

データベースに対して指定された SQL を実行し、影響を受けた行数を返します。

このメソッドはトランザクションを開始しないことに注意してください。 トランザクションでこのメソッドを使用するには、最初に BeginTransaction(DatabaseFacade, IsolationLevel) または UseTransaction(DatabaseFacade, DbTransaction)を呼び出します。

SQL はべき等ではなく、トランザクションで実行されない可能性があるため、現在の ExecutionStrategy はこのメソッドでは使用されないことに注意してください。 ExecutionStrategy は明示的に使用できるため、SQL がべき等でない場合もトランザクションを使用してください。

SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するためにユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーターのプレース ホルダーを含め、パラメーター値を追加の引数として指定できます。 指定したパラメーター値は、自動的に DbParameter に変換されます。 ExecuteSqlInterpolated を使用して補間文字列構文を使用してパラメーターを作成することも検討できます。

ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, Object[])
古い.

データベースに対して指定された SQL を実行し、影響を受けた行数を返します。

このメソッドはトランザクションを開始しないことに注意してください。 トランザクションでこのメソッドを使用するには、最初に BeginTransaction(DatabaseFacade, IsolationLevel) または UseTransaction(DatabaseFacade, DbTransaction)を呼び出します。

SQL はべき等ではなく、トランザクションで実行されない可能性があるため、現在の ExecutionStrategy はこのメソッドでは使用されないことに注意してください。 ExecutionStrategy は明示的に使用できるため、SQL がべき等でない場合もトランザクションを使用してください。

SQL を受け入れる API と同様に、SQL インジェクション攻撃から保護するためにユーザー入力をパラメーター化することが重要です。 SQL クエリ文字列にパラメーターのプレース ホルダーを含め、パラメーター値を追加の引数として指定できます。 指定したパラメーター値は、自動的に DbParameter - context.Database.ExecuteSqlCommandAsync("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm)に変換されます。 ExecuteSqlInterpolated を使用して補間文字列構文を使用してパラメーターを作成することも検討できます。

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, CancellationToken)

データベースに対して指定された SQL を実行し、影響を受けた行数を返します。

ExecuteSqlRawAsync(DatabaseFacade, String, IEnumerable<Object>, CancellationToken)

データベースに対して指定された SQL を実行し、影響を受けた行数を返します。

ExecuteSqlRawAsync(DatabaseFacade, String, Object[])

データベースに対して指定された SQL を実行し、影響を受けた行数を返します。

GenerateCreateScript(DatabaseFacade)

現在のモデルのすべてのテーブルを作成するスクリプトを生成します。

GetAppliedMigrations(DatabaseFacade)

ターゲット データベースに適用されているすべての移行を取得します。

GetAppliedMigrationsAsync(DatabaseFacade, CancellationToken)

ターゲット データベースに適用されているすべての移行を非同期的に取得します。

GetCommandTimeout(DatabaseFacade)

この DbContextで実行されるコマンドのタイムアウト (秒単位) を返します。

GetConnectionString(DatabaseFacade)

このDbContext用に構成された基になる接続文字列を取得します。

GetCosmosClient(DatabaseFacade)

このDbContextの基になるCosmosClientを取得します。

GetCosmosDatabaseId(DatabaseFacade)

この DbContextの構成済みデータベース名を取得します。

GetDbConnection(DatabaseFacade)

このDbContextの基になる ADO.NET DbConnection を取得します。

GetEnlistedTransaction(DatabaseFacade)

現在参加しているトランザクションを返します。

GetInfrastructure<T>(IInfrastructure<T>)

IInfrastructure<T>を使用して非表示になっているプロパティから値を取得します。

このメソッドは、通常、データベース プロバイダー (およびその他の拡張機能) によって使用されます。 通常、アプリケーション コードでは使用されません。

GetMigrations(DatabaseFacade)

構成された移行アセンブリで定義されているすべての移行を取得します。

GetPendingMigrations(DatabaseFacade)

アセンブリで定義されているが、ターゲット データベースに適用されていないすべての移行を取得します。

GetPendingMigrationsAsync(DatabaseFacade, CancellationToken)

アセンブリで定義されているが、ターゲット データベースに適用されていない移行をすべて非同期的に取得します。

GetSessionToken(DatabaseFacade)

この DbContextの既定のコンテナーの複合セッション トークンを取得します。

GetSessionTokens(DatabaseFacade)

この DbContextのコンテナーごとの複合セッション トークンを含むディクショナリを取得します。

HasPendingModelChanges(DatabaseFacade)

モデルに適用する保留中の変更がある場合に true を返します。

IsCosmos(DatabaseFacade)

現在使用されているデータベース プロバイダーが Cosmos プロバイダーの場合は、 true を返します。

IsInMemory(DatabaseFacade)

現在使用中のデータベース プロバイダーがメモリ内プロバイダーの場合は、 true を返します。

IsRelational(DatabaseFacade)

現在使用中のデータベース プロバイダーがリレーショナル データベースの場合は、 true を返します。

IsSqlite(DatabaseFacade)

現在使用中のデータベース プロバイダーが SQLite プロバイダーの場合は、 true を返します。

IsSqlServer(DatabaseFacade)

現在使用中のデータベース プロバイダーがSQL Server プロバイダーの場合は、trueを返します。

Migrate(DatabaseFacade, String)

コンテキストの移行をデータベースに適用します。 データベースがまだ存在しない場合は、データベースを作成します。

Migrate(DatabaseFacade)

コンテキストの保留中の移行をデータベースに適用します。 データベースがまだ存在しない場合は、データベースを作成します。

MigrateAsync(DatabaseFacade, CancellationToken)

コンテキストの保留中の移行をデータベースに非同期的に適用します。 データベースがまだ存在しない場合は、データベースを作成します。

MigrateAsync(DatabaseFacade, String, 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 クエリを作成します。このクエリは、データベース プロバイダーによってネイティブにサポートされているスカラー型の結果セットを返します。

UseSessionToken(DatabaseFacade, String)

この DbContextの既定のコンテナーの複合セッション トークンを設定します。

UseSessionTokens(DatabaseFacade, IReadOnlyDictionary<String,String>)

sessionTokensで指定されたトークンを使用して、このDbContextのコンテナーごとの複合セッション トークンを設定します。

UseTransaction(DatabaseFacade, DbTransaction, Guid)

DbContextに対するデータベース操作で使用するDbTransactionを設定します。

UseTransaction(DatabaseFacade, DbTransaction)

DbContextに対するデータベース操作で使用するDbTransactionを設定します。

UseTransactionAsync(DatabaseFacade, DbTransaction, CancellationToken)

DbContextに対するデータベース操作で使用するDbTransactionを設定します。

UseTransactionAsync(DatabaseFacade, DbTransaction, Guid, CancellationToken)

DbContextに対するデータベース操作で使用するDbTransactionを設定します。

適用対象