Language

DbContextOptionsBuilder クラス

定義

DbContextOptionsを構成するための簡単な API サーフェスを提供します。 通常、データベース (およびその他の拡張機能) は、コンテキストに使用するデータベース接続 (およびその他のオプション) を構成できる拡張メソッドをこのオブジェクトに定義します。

public class DbContextOptionsBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IDbContextOptionsBuilderInfrastructure
[System.Runtime.CompilerServices.Nullable(0)]
public class DbContextOptionsBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IDbContextOptionsBuilderInfrastructure
type DbContextOptionsBuilder = class
    interface IDbContextOptionsBuilderInfrastructure
[<System.Runtime.CompilerServices.Nullable(0)>]
type DbContextOptionsBuilder = class
    interface IDbContextOptionsBuilderInfrastructure
Public Class DbContextOptionsBuilder
Implements IDbContextOptionsBuilderInfrastructure
継承
DbContextOptionsBuilder
派生
属性
実装

注釈

DbContextOptionsBuilderを使用してコンテキストを構成するには、OnConfiguring(DbContextOptionsBuilder)をオーバーライドするか、外部でDbContextOptionsを作成してコンテキスト コンストラクターに渡します。

詳細と例については、 DbContextOptions の使用 を参照してください。

コンストラクター

Name 説明
DbContextOptionsBuilder()

オプションを設定せず、 DbContextOptionsBuilder クラスの新しいインスタンスを初期化します。

DbContextOptionsBuilder(DbContextOptions)

特定のDbContextOptionsをさらに構成するために、DbContextOptionsBuilder クラスの新しいインスタンスを初期化します。

プロパティ

Name 説明
IsConfigured

オプションが構成されているかどうかを示す値を取得します。

Options

構成されているオプションを取得します。

メソッド

Name 説明
AddInterceptors(IEnumerable<IInterceptor>)

コンテキスト IInterceptor 登録されているインスタンスにインスタンスを追加します。

AddInterceptors(IInterceptor[])

コンテキスト IInterceptor 登録されているインスタンスにインスタンスを追加します。

ConfigureLoggingCacheTime(TimeSpan)

EF Core が特定の高パフォーマンス パスにログ構成をキャッシュする期間を構成します。 これにより、EF Core はコストの高いログ記録チェックをスキップしますが、実行時のログ記録の変更 (たとえば、新しい DiagnosticListener の登録はすぐに考慮されない可能性があります) を意味します。

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

Entity Framework によって生成される警告の実行時動作を構成します。 警告の種類ごとに既定の動作と動作を設定できます。

ConfigureWarnings(Action<WarningsConfigurationBuilder>)

Entity Framework によって生成される警告の実行時動作を構成します。 警告の種類ごとに既定の動作と動作を設定できます。

EnableDetailedErrors(Boolean)

ストア クエリ結果の処理中に発生するデータ値の例外を処理するときに詳細なエラーを有効にします。 このようなエラーは、ほとんどの場合、エンティティ プロパティの構成ミスが原因で発生します。 たとえば、プロパティが 'int' 型に構成されているが、ストア内の基になるデータが実際には型 'string' の場合、実行時にデータ値の処理中に例外が生成されます。 このオプションが有効で、データ エラーが発生した場合、生成された例外には、エラーを生成した特定のエンティティ プロパティの詳細が含まれます。

EnableSensitiveDataLogging()

アプリケーション データを例外メッセージやログなどに含めることができます。これには、エンティティ インスタンスのプロパティに割り当てられた値、データベースに送信されるコマンドのパラメーター値、およびその他のデータを含めることができます。 このフラグは、このデータの機密性に基づいて適切なセキュリティ対策が実施されている場合にのみ有効にする必要があります。

EnableSensitiveDataLogging(Boolean)

アプリケーション データを例外メッセージやログなどに含めることができます。これには、エンティティ インスタンスのプロパティに割り当てられた値、データベースに送信されるコマンドのパラメーター値、およびその他のデータを含めることができます。 このフラグは、このデータの機密性に基づいて適切なセキュリティ対策が実施されている場合にのみ有効にする必要があります。

EnableServiceProviderCaching(Boolean)

内部サービス プロバイダーのキャッシュを有効または無効にします。 キャッシュを無効にするとパフォーマンスに大きな影響を与える可能性があり、テスト分離のために多数のサービス プロバイダーを構築するテスト シナリオでのみ使用する必要があります。

EnableThreadSafetyChecks(Boolean)

コンカレンシー検出を無効にします。これにより、 DbContext インスタンスの誤った同時使用の多くのケースが検出され、有益な例外がスローされます。 これによりパフォーマンスが若干向上しますが、 DbContext インスタンスが同時に使用される場合、動作は未定義になり、プログラムが予期しない方法で失敗する可能性があります。

LogTo(Action<String>, Func<EventId,LogLevel,Boolean>, Nullable<DbContextLoggerOptions>)

指定されたカスタム フィルター デリゲートによってフィルター処理されたイベントをログに記録します。 フィルターは、メッセージをログに記録するには true を返し、ログから除外するには false を返す必要があります。

LogTo(Action<String>, IEnumerable<EventId>, LogLevel, Nullable<DbContextLoggerOptions>)

指定されたアクションを使用して、指定したイベントをログに記録します。 たとえば、 optionsBuilder.LogTo(Console.WriteLine, new[] { CoreEventId.ContextInitialized }) を使用して、 ContextInitialized イベントをコンソールに記録します。

LogTo(Action<String>, IEnumerable<String>, LogLevel, Nullable<DbContextLoggerOptions>)

指定されたアクションを使用して、指定されたカテゴリ内のすべてのイベントをログに記録します。 たとえば、 optionsBuilder.LogTo(Console.WriteLine, new[] { DbLoggerCategory.Infrastructure.Name }) を使用して、 DbLoggerCategory.Infrastructure カテゴリ内のすべてのイベントをログに記録します。

LogTo(Action<String>, LogLevel, Nullable<DbContextLoggerOptions>)

指定されたアクションを使用してログを記録します。 たとえば、 optionsBuilder.LogTo(Console.WriteLine) を使用してコンソールにログを記録します。

LogTo(Func<EventId,LogLevel,Boolean>, Action<EventData>)

カスタム フィルター デリゲートでフィルター処理されたカスタム ロガー デリゲートにイベントをログに記録します。 フィルターは、メッセージをログに記録するには true を返し、ログから除外するには false を返す必要があります。

ReplaceService<TService,TCurrentImplementation,TNewImplementation>()

サービス コントラクトの特定の実装の Entity Framework の内部実装を別の実装に置き換えます。

ReplaceService<TService,TImplementation>()

サービス コントラクトのすべての内部 Entity Framework 実装を別の実装に置き換えます。

UseApplicationServiceProvider(IServiceProvider)

アプリケーション サービスの取得元となる IServiceProvider を設定します。 これは、'AddDbContext' または 'AddDbContextPool' を使用する場合に自動的に行われるので、このメソッドを呼び出す必要はほとんどありません。

UseAsyncSeeding(Func<DbContext,Boolean,CancellationToken,Task>)

EnsureCreatedAsync(CancellationToken)が呼び出された後、または移行が非同期に適用された後に実行されるようにシード メソッドを構成します。 ストアへの変更が実行されなかった場合でも呼び出されます。

UseInternalServiceProvider(IServiceProvider)

コンテキストがすべてのサービスを解決する必要がある IServiceProvider を設定します。 何も指定されていない場合、EF はサービス プロバイダーを作成および管理します。

UseLoggerFactory(ILoggerFactory)

このコンテキストによって実行されるログ記録用のILogger インスタンスの作成に使用するILoggerFactoryを設定します。

UseMemoryCache(IMemoryCache)

このコンテキストによるクエリ キャッシュに使用する IMemoryCache を設定します。

UseModel(IModel)

コンテキストに使用するモデルを設定します。 モデルが設定されている場合、 OnModelCreating(ModelBuilder) は実行されません。

UseQueryTrackingBehavior(QueryTrackingBehavior)

コンテキストに対して実行される LINQ クエリの追跡動作を設定します。 変更の追跡を無効にすると、エンティティ インスタンスごとに変更追跡を設定するオーバーヘッドが回避されるため、読み取り専用のシナリオに役立ちます。 エンティティ インスタンスを操作し、 SaveChanges()を使用してそれらの変更をデータベースに保持する場合は、変更の追跡を無効にしないでください。

UseRootApplicationServiceProvider()

スコープ付きアプリケーション サービス プロバイダーからのルート IServiceProvider を解決します。 ルート プロバイダーを使用して、シングルトン内部サービスからシングルトン アプリケーション サービスを取得できます。

UseRootApplicationServiceProvider(IServiceProvider)

シングルトン内部サービスからシングルトン アプリケーション サービスを取得できるルート IServiceProvider を設定します。

UseSeeding(Action<DbContext,Boolean>)

EnsureCreated()が呼び出された後、または移行が適用された後に実行されるようにシード メソッドを構成します。 ストアへの変更が実行されなかった場合でも呼び出されます。

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

Name 説明
IDbContextOptionsBuilderInfrastructure.AddOrUpdateExtension<TExtension>(TExtension)

指定した拡張機能をオプションに追加します。 同じ型の既存の拡張機能が既に存在する場合は、置き換えられます。

IDbContextOptionsBuilderInfrastructure.RemoveExtension<TExtension>()

指定した型の拡張子をオプションから削除します。 指定された型の拡張子が存在しない場合、これは no-opです。

拡張メソッド

Name 説明
ConfigureSqlEngine(DbContextOptionsBuilder, Action<SqlEngineDbContextOptionsBuilder>)

DbConnectionまたは接続文字列を最初に設定せずに、SQL Server、Azure SQL、Azure Synapse データベースのいずれかに接続するようにコンテキストを構成します。

UseAzureSql(DbContextOptionsBuilder, Action<AzureSqlDbContextOptionsBuilder>)

DbConnectionまたは接続文字列を最初に設定せずに、Azure SQL データベースに接続するようにコンテキストを構成します。

UseAzureSql(DbContextOptionsBuilder, DbConnection, Action<AzureSqlDbContextOptionsBuilder>)

Azure SQL データベースに接続するようにコンテキストを構成します。

UseAzureSql(DbContextOptionsBuilder, DbConnection, Boolean, Action<AzureSqlDbContextOptionsBuilder>)

Azure SQL データベースに接続するようにコンテキストを構成します。

UseAzureSql(DbContextOptionsBuilder, String, Action<AzureSqlDbContextOptionsBuilder>)

Azure SQL データベースに接続するようにコンテキストを構成します。

UseAzureSynapse(DbContextOptionsBuilder, Action<AzureSynapseDbContextOptionsBuilder>)

DbConnectionまたは接続文字列を最初に設定せずに、Azure Synapse データベースに接続するようにコンテキストを構成します。

UseAzureSynapse(DbContextOptionsBuilder, DbConnection, Action<AzureSynapseDbContextOptionsBuilder>)

Azure Synapse データベースに接続するようにコンテキストを構成します。

UseAzureSynapse(DbContextOptionsBuilder, DbConnection, Boolean, Action<AzureSynapseDbContextOptionsBuilder>)

Azure Synapse データベースに接続するようにコンテキストを構成します。

UseAzureSynapse(DbContextOptionsBuilder, String, Action<AzureSynapseDbContextOptionsBuilder>)

Azure Synapse データベースに接続するようにコンテキストを構成します。

UseChangeTrackingProxies(DbContextOptionsBuilder, Boolean, Boolean)

変更追跡プロキシの作成をオンにします。

UseCosmos(DbContextOptionsBuilder, Action<CosmosDbContextOptionsBuilder>)

Azure Cosmos データベースに接続するようにコンテキストを構成します。 接続の詳細は、別の呼び出しで指定する必要があります。

UseCosmos(DbContextOptionsBuilder, String, String, Action<CosmosDbContextOptionsBuilder>)

Azure Cosmos データベースに接続するようにコンテキストを構成します。

UseCosmos(DbContextOptionsBuilder, String, String, String, Action<CosmosDbContextOptionsBuilder>)

Azure Cosmos データベースに接続するようにコンテキストを構成します。

UseCosmos(DbContextOptionsBuilder, String, TokenCredential, String, Action<CosmosDbContextOptionsBuilder>)

Azure Cosmos データベースに接続するようにコンテキストを構成します。

UseInMemoryDatabase(DbContextOptionsBuilder, Action<InMemoryDbContextOptionsBuilder>)
古い.
古い.

従来の共有メモリ内データベースに接続するようにコンテキストを構成します。 メソッドは廃止されています。 UseInMemoryDatabase(DbContextOptionsBuilder, String, Action<InMemoryDbContextOptionsBuilder>) を代わりに使用します。

UseInMemoryDatabase(DbContextOptionsBuilder, String, Action<InMemoryDbContextOptionsBuilder>)

名前付きメモリ内データベースに接続するようにコンテキストを構成します。 メモリ内データベースは、同じ名前が使用されている任意の場所で共有されますが、特定のサービス プロバイダーに対してのみ共有されます。 サービス プロバイダー間で同じメモリ内データベースを使用するには、データベースをルートする共有InMemoryDatabaseRootを渡UseInMemoryDatabase(DbContextOptionsBuilder, String, InMemoryDatabaseRoot, Action<InMemoryDbContextOptionsBuilder>)呼び出します。

UseInMemoryDatabase(DbContextOptionsBuilder, String, InMemoryDatabaseRoot, Action<InMemoryDbContextOptionsBuilder>)

名前付きメモリ内データベースに接続するようにコンテキストを構成します。 メモリ内データベースは、同じ名前が使用されている任意の場所で共有されますが、特定のサービス プロバイダーに対してのみ共有されます。

UseLazyLoadingProxies(DbContextOptionsBuilder, Action<LazyLoadingProxiesOptionsBuilder>)

遅延読み込みプロキシの作成を有効にします。

UseLazyLoadingProxies(DbContextOptionsBuilder, Boolean)

遅延読み込みプロキシの作成を有効にします。

UseSqlite(DbContextOptionsBuilder, Action<SqliteDbContextOptionsBuilder>)

SQLite データベースに接続するようにコンテキストを構成しますが、最初にDbConnectionや接続文字列を設定する必要はありません。

UseSqlite(DbContextOptionsBuilder, DbConnection, Action<SqliteDbContextOptionsBuilder>)

SQLite データベースに接続するようにコンテキストを構成します。

UseSqlite(DbContextOptionsBuilder, DbConnection, Boolean, Action<SqliteDbContextOptionsBuilder>)

SQLite データベースに接続するようにコンテキストを構成します。

UseSqlite(DbContextOptionsBuilder, String, Action<SqliteDbContextOptionsBuilder>)

SQLite データベースに接続するようにコンテキストを構成します。

UseSqlServer(DbContextOptionsBuilder, Action<SqlServerDbContextOptionsBuilder>)

DbConnectionまたは接続文字列を最初に設定せずに、SQL Server データベースに接続するようにコンテキストを構成します。

UseSqlServer(DbContextOptionsBuilder, DbConnection, Action<SqlServerDbContextOptionsBuilder>)

SQL Server データベースに接続するようにコンテキストを構成します。

UseSqlServer(DbContextOptionsBuilder, DbConnection, Boolean, Action<SqlServerDbContextOptionsBuilder>)

SQL Server データベースに接続するようにコンテキストを構成します。

UseSqlServer(DbContextOptionsBuilder, String, Action<SqlServerDbContextOptionsBuilder>)

SQL Server データベースに接続するようにコンテキストを構成します。

適用対象