EntityFrameworkServiceCollectionExtensions.AddDbContextPool メソッド

定義

オーバーロード

AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

に指定 DbContext された をサービス IServiceCollectionとして登録し、この登録に対して DbContext プールを有効にします。

AddDbContextPool<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

に指定 DbContext された をサービス IServiceCollectionとして登録し、この登録に対して DbContext プールを有効にします。

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

に指定 DbContext された をサービス IServiceCollectionとして登録し、この登録に対して DbContext プールを有効にします。

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

に指定 DbContext された をサービス IServiceCollectionとして登録し、この登録に対して DbContext プールを有効にします。

AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

に指定 DbContext された をサービス IServiceCollectionとして登録し、この登録に対して DbContext プールを有効にします。

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 1024) As IServiceCollection

型パラメーター

TContext

登録するコンテキストの種類。

パラメーター

serviceCollection
IServiceCollection

サービスを追加する先の IServiceCollection

optionsAction
Action<DbContextOptionsBuilder>

コンテキストの を DbContextOptions 構成するために必要なアクション。 コンテキスト プールを使用する場合は、オプションの構成を外部で実行する必要があります。 OnConfiguring(DbContextOptionsBuilder) は呼び出されません。

poolSize
Int32

プールによって保持されるインスタンスの最大数を設定します。 既定値は 1024 です。

戻り値

複数の呼び出しをチェーンできるように、同じサービス コレクション。

注釈

DbContext プールは、コンテキスト インスタンスを再利用することで、高スループットのシナリオでパフォーマンスを向上させることができます。 ただし、ほとんどのアプリケーションでは、このパフォーマンスの向上は非常に小さくなります。 プールを使用する場合、コンテキスト構成は使用間で変更できず、コンテキストに挿入されたスコープサービスは最初のスコープから 1 回だけ解決されることに注意してください。 パフォーマンス テストで実際のブーストが提供されると示されている場合にのみ、DbContext プールの使用を検討してください。

ASP.NET Coreなど、アプリケーションで依存関係の挿入を使用する場合は、このメソッドを使用します。 依存関係の挿入を使用しないアプリケーションの場合は、コンストラクターを使用してインスタンスを DbContext 直接作成することを検討してください。 OnConfiguring(DbContextOptionsBuilder)その後、 メソッドをオーバーライドして接続文字列やその他のオプションを構成できます。

Entity Framework Core では、同じ DbContext インスタンス上での複数の並列操作の実行がサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、常に非同期呼び出しをすぐに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細と例については、「 DbContext スレッドの問題を回避する 」を参照してください。

詳細と例については、「 依存関係の挿入での DbContext の使用」および 「DbContext プールの使用 」を参照してください。

適用対象

AddDbContextPool<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

に指定 DbContext された をサービス IServiceCollectionとして登録し、この登録に対して DbContext プールを有効にします。

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 1024) As IServiceCollection

型パラメーター

TContext

登録するコンテキストの種類。

パラメーター

serviceCollection
IServiceCollection

サービスを追加する先の IServiceCollection

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

コンテキストの を DbContextOptions 構成するために必要なアクション。 コンテキスト プールを使用する場合は、オプションの構成を外部で実行する必要があります。 OnConfiguring(DbContextOptionsBuilder) は呼び出されません。

poolSize
Int32

プールによって保持されるインスタンスの最大数を設定します。 既定値は 1024 です。

戻り値

複数の呼び出しをチェーンできるように、同じサービス コレクション。

注釈

DbContext プールは、コンテキスト インスタンスを再利用することで、高スループットのシナリオでパフォーマンスを向上させることができます。 ただし、ほとんどのアプリケーションでは、このパフォーマンスの向上は非常に小さくなります。 プールを使用する場合、コンテキスト構成は使用間で変更できず、コンテキストに挿入されたスコープサービスは最初のスコープから 1 回だけ解決されることに注意してください。 パフォーマンス テストで実際のブーストが提供されると示されている場合にのみ、DbContext プールの使用を検討してください。

ASP.NET Coreなど、アプリケーションで依存関係の挿入を使用する場合は、このメソッドを使用します。 依存関係の挿入を使用しないアプリケーションの場合は、コンストラクターを使用してインスタンスを DbContext 直接作成することを検討してください。 OnConfiguring(DbContextOptionsBuilder)その後、 メソッドをオーバーライドして接続文字列やその他のオプションを構成できます。

Entity Framework Core では、同じ DbContext インスタンス上での複数の並列操作の実行がサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、常に非同期呼び出しをすぐに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細と例については、「 DbContext スレッドの問題を回避する 」を参照してください。

詳細と例については、「 依存関係の挿入での DbContext の使用」および 「DbContext プールの使用 」を参照してください。

このオーバーロードには、 optionsAction アプリケーション IServiceProviderの を提供する があります。 これは、Entity Framework Core をセットアップして、プライマリ アプリケーション サービス プロバイダーから内部サービスを解決する場合に便利です。 既定では、 を使用 AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) することをお勧めします。これにより、Entity Framework は内部 Entity Framework サービス用に独自 IServiceProvider の作成と保守を行うことができます。

適用対象

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

に指定 DbContext された をサービス IServiceCollectionとして登録し、この登録に対して DbContext プールを有効にします。

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextService : null and 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 1024) As IServiceCollection

型パラメーター

TContextService

コンテナーからコンテキストを解決するために使用されるクラスまたはインターフェイス。

TContextImplementation

作成する具象実装型。

パラメーター

serviceCollection
IServiceCollection

サービスを追加する先の IServiceCollection

optionsAction
Action<DbContextOptionsBuilder>

コンテキストの を DbContextOptions 構成するために必要なアクション。 コンテキスト プールを使用する場合は、オプションの構成を外部で実行する必要があります。 OnConfiguring(DbContextOptionsBuilder) は呼び出されません。

poolSize
Int32

プールによって保持されるインスタンスの最大数を設定します。 既定値は 1024 です。

戻り値

複数の呼び出しをチェーンできるように、同じサービス コレクション。

注釈

DbContext プールは、コンテキスト インスタンスを再利用することで、高スループットのシナリオでパフォーマンスを向上させることができます。 ただし、ほとんどのアプリケーションでは、このパフォーマンスの向上は非常に小さくなります。 プールを使用する場合、コンテキスト構成は使用間で変更できず、コンテキストに挿入されたスコープサービスは最初のスコープから 1 回だけ解決されることに注意してください。 パフォーマンス テストで実際のブーストが提供されると示されている場合にのみ、DbContext プールの使用を検討してください。

ASP.NET Coreなど、アプリケーションで依存関係の挿入を使用する場合は、このメソッドを使用します。 依存関係の挿入を使用しないアプリケーションの場合は、コンストラクターを使用してインスタンスを DbContext 直接作成することを検討してください。 OnConfiguring(DbContextOptionsBuilder)その後、 メソッドをオーバーライドして接続文字列やその他のオプションを構成できます。

Entity Framework Core では、同じ DbContext インスタンス上での複数の並列操作の実行がサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、常に非同期呼び出しをすぐに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細と例については、「 DbContext スレッドの問題を回避する 」を参照してください。

詳細と例については、「 依存関係の挿入での DbContext の使用」および 「DbContext プールの使用 」を参照してください。

適用対象

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

に指定 DbContext された をサービス IServiceCollectionとして登録し、この登録に対して DbContext プールを有効にします。

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextService : null and 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 1024) As IServiceCollection

型パラメーター

TContextService

コンテナーからコンテキストを解決するために使用されるクラスまたはインターフェイス。

TContextImplementation

作成する具象実装型。

パラメーター

serviceCollection
IServiceCollection

サービスを追加する先の IServiceCollection

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

コンテキストの を DbContextOptions 構成するために必要なアクション。 コンテキスト プールを使用する場合は、オプションの構成を外部で実行する必要があります。 OnConfiguring(DbContextOptionsBuilder) は呼び出されません。

poolSize
Int32

プールによって保持されるインスタンスの最大数を設定します。 既定値は 1024 です。

戻り値

複数の呼び出しをチェーンできるように、同じサービス コレクション。

注釈

DbContext プールは、コンテキスト インスタンスを再利用することで、高スループットのシナリオでパフォーマンスを向上させることができます。 ただし、ほとんどのアプリケーションでは、このパフォーマンスの向上は非常に小さくなります。 プールを使用する場合、コンテキスト構成は使用間で変更できず、コンテキストに挿入されたスコープサービスは最初のスコープから 1 回だけ解決されることに注意してください。 パフォーマンス テストで実際のブーストが提供されると示されている場合にのみ、DbContext プールの使用を検討してください。

ASP.NET Coreなど、アプリケーションで依存関係の挿入を使用する場合は、このメソッドを使用します。 依存関係の挿入を使用しないアプリケーションの場合は、コンストラクターを使用してインスタンスを DbContext 直接作成することを検討してください。 OnConfiguring(DbContextOptionsBuilder)その後、 メソッドをオーバーライドして接続文字列やその他のオプションを構成できます。

Entity Framework Core では、同じ DbContext インスタンス上での複数の並列操作の実行がサポートされていません。 これには、非同期クエリの並列実行と、複数のスレッドからの明示的な同時使用の両方が含まれます。 したがって、常に非同期呼び出しをすぐに待機するか、並列で実行される操作に個別の DbContext インスタンスを使用します。 詳細と例については、「 DbContext スレッドの問題を回避する 」を参照してください。

詳細と例については、「 依存関係の挿入での DbContext の使用」および 「DbContext プールの使用 」を参照してください。

このオーバーロードには、 optionsAction アプリケーション IServiceProviderの を提供する があります。 これは、Entity Framework Core をセットアップして、プライマリ アプリケーション サービス プロバイダーから内部サービスを解決する場合に便利です。 既定では、 を使用 AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) することをお勧めします。これにより、Entity Framework は内部 Entity Framework サービス用に独自 IServiceProvider の作成と保守を行うことができます。

適用対象