EntityFrameworkServiceCollectionExtensions.AddDbContextPool メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
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 の作成と保守を行うことができます。
適用対象
Entity Framework