Partager via


EntityFrameworkServiceCollectionExtensions.AddDbContextPool Méthode

Définition

Surcharges

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

Inscrit le donné DbContext en tant que service dans et active le IServiceCollectionregroupement DbContext pour cette inscription.

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

Inscrit le donné DbContext en tant que service dans et active le IServiceCollectionregroupement DbContext pour cette inscription.

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

Inscrit le donné DbContext en tant que service dans et active le IServiceCollectionregroupement DbContext pour cette inscription.

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

Inscrit le donné DbContext en tant que service dans et active le IServiceCollectionregroupement DbContext pour cette inscription.

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

Inscrit le donné DbContext en tant que service dans et active le IServiceCollectionregroupement DbContext pour cette inscription.

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

Paramètres de type

TContext

Type de contexte à inscrire.

Paramètres

serviceCollection
IServiceCollection

IServiceCollection auquel ajouter les services.

optionsAction
Action<DbContextOptionsBuilder>

Action requise pour configurer le DbContextOptions pour le contexte. Lors de l’utilisation du regroupement de contextes, la configuration des options doit être effectuée en externe ; OnConfiguring(DbContextOptionsBuilder) ne sera pas appelé.

poolSize
Int32

Définit le nombre maximal d’instances conservées par le pool. La valeur par défaut est 1024.

Retours

La même collection de services afin que plusieurs appels puissent être chaînés.

Remarques

Le regroupement DbContext peut augmenter les performances dans les scénarios à débit élevé en réutilisant des instances de contexte. Toutefois, pour la plupart des applications, ce gain de performances est très faible. Notez que lors de l’utilisation du regroupement, la configuration du contexte ne peut pas changer entre les utilisations, et les services étendus injectés dans le contexte ne seront résolus qu’une seule fois à partir de l’étendue initiale. Envisagez uniquement d’utiliser le regroupement DbContext lorsque les tests de performances indiquent qu’il offre un réel coup de pouce.

Utilisez cette méthode lors de l’utilisation de l’injection de dépendances dans votre application, par exemple avec ASP.NET Core. Pour les applications qui n’utilisent pas l’injection de dépendances, envisagez de créer DbContext des instances directement avec son constructeur. La OnConfiguring(DbContextOptionsBuilder) méthode peut ensuite être remplacée pour configurer une chaîne de connexion et d’autres options.

Entity Framework Core ne prend pas en charge les opérations parallèles multiples en cours d’exécution sur la même instance DbContext. Cela inclut l’exécution parallèle de requêtes asynchrones et toute utilisation simultanée explicite de plusieurs threads. Par conséquent, attendez toujours les appels asynchrones immédiatement ou utilisez des instances DbContext distinctes pour les opérations qui s’exécutent en parallèle. Pour plus d’informations et d’exemples, consultez Éviter les problèmes de thread dbContext .

Pour plus d’informations et d’exemples, consultez Utilisation de DbContext avec injection de dépendances et Utilisation du regroupement DbContext .

S’applique à

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

Inscrit le donné DbContext en tant que service dans et active le IServiceCollectionregroupement DbContext pour cette inscription.

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

Paramètres de type

TContext

Type de contexte à inscrire.

Paramètres

serviceCollection
IServiceCollection

IServiceCollection auquel ajouter les services.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Action requise pour configurer le DbContextOptions pour le contexte. Lors de l’utilisation du regroupement de contextes, la configuration des options doit être effectuée en externe ; OnConfiguring(DbContextOptionsBuilder) ne sera pas appelé.

poolSize
Int32

Définit le nombre maximal d’instances conservées par le pool. La valeur par défaut est 1024.

Retours

La même collection de services afin que plusieurs appels puissent être chaînés.

Remarques

Le regroupement DbContext peut augmenter les performances dans les scénarios à débit élevé en réutilisant des instances de contexte. Toutefois, pour la plupart des applications, ce gain de performances est très faible. Notez que lors de l’utilisation du regroupement, la configuration du contexte ne peut pas changer entre les utilisations, et les services étendus injectés dans le contexte ne seront résolus qu’une seule fois à partir de l’étendue initiale. Envisagez uniquement d’utiliser le regroupement DbContext lorsque les tests de performances indiquent qu’il offre un réel coup de pouce.

Utilisez cette méthode lors de l’utilisation de l’injection de dépendances dans votre application, par exemple avec ASP.NET Core. Pour les applications qui n’utilisent pas l’injection de dépendances, envisagez de créer DbContext des instances directement avec son constructeur. La OnConfiguring(DbContextOptionsBuilder) méthode peut ensuite être remplacée pour configurer une chaîne de connexion et d’autres options.

Entity Framework Core ne prend pas en charge les opérations parallèles multiples en cours d’exécution sur la même instance DbContext. Cela inclut l’exécution parallèle de requêtes asynchrones et toute utilisation simultanée explicite de plusieurs threads. Par conséquent, attendez toujours les appels asynchrones immédiatement ou utilisez des instances DbContext distinctes pour les opérations qui s’exécutent en parallèle. Pour plus d’informations et d’exemples, consultez Éviter les problèmes de thread dbContext .

Pour plus d’informations et d’exemples, consultez Utilisation de DbContext avec injection de dépendances et Utilisation du regroupement DbContext .

Cette surcharge a un optionsAction qui fournit le de l’application IServiceProvider. Cela est utile si vous souhaitez configurer Entity Framework Core pour résoudre ses services internes à partir du fournisseur de services d’application principal. Par défaut, nous vous recommandons d’utiliser AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) ce qui permet à Entity Framework de créer et de gérer ses propres IServiceProvider services Entity Framework internes.

S’applique à

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

Inscrit le donné DbContext en tant que service dans et active le IServiceCollectionregroupement DbContext pour cette inscription.

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

Paramètres de type

TContextService

Classe ou interface qui sera utilisée pour résoudre le contexte à partir du conteneur.

TContextImplementation

Type d’implémentation concrète à créer.

Paramètres

serviceCollection
IServiceCollection

IServiceCollection auquel ajouter les services.

optionsAction
Action<DbContextOptionsBuilder>

Action requise pour configurer le DbContextOptions pour le contexte. Lors de l’utilisation du regroupement de contextes, la configuration des options doit être effectuée en externe ; OnConfiguring(DbContextOptionsBuilder) ne sera pas appelé.

poolSize
Int32

Définit le nombre maximal d’instances conservées par le pool. La valeur par défaut est 1024.

Retours

La même collection de services afin que plusieurs appels puissent être chaînés.

Remarques

Le regroupement DbContext peut augmenter les performances dans les scénarios à débit élevé en réutilisant des instances de contexte. Toutefois, pour la plupart des applications, ce gain de performances est très faible. Notez que lors de l’utilisation du regroupement, la configuration du contexte ne peut pas changer entre les utilisations, et les services étendus injectés dans le contexte ne seront résolus qu’une seule fois à partir de l’étendue initiale. Envisagez uniquement d’utiliser le regroupement DbContext lorsque les tests de performances indiquent qu’il offre un réel coup de pouce.

Utilisez cette méthode lors de l’utilisation de l’injection de dépendances dans votre application, par exemple avec ASP.NET Core. Pour les applications qui n’utilisent pas l’injection de dépendances, envisagez de créer DbContext des instances directement avec son constructeur. La OnConfiguring(DbContextOptionsBuilder) méthode peut ensuite être remplacée pour configurer une chaîne de connexion et d’autres options.

Entity Framework Core ne prend pas en charge les opérations parallèles multiples en cours d’exécution sur la même instance DbContext. Cela inclut l’exécution parallèle de requêtes asynchrones et toute utilisation simultanée explicite de plusieurs threads. Par conséquent, attendez toujours les appels asynchrones immédiatement ou utilisez des instances DbContext distinctes pour les opérations qui s’exécutent en parallèle. Pour plus d’informations et d’exemples, consultez Éviter les problèmes de thread dbContext .

Pour plus d’informations et d’exemples, consultez Utilisation de DbContext avec injection de dépendances et Utilisation du regroupement DbContext .

S’applique à

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

Inscrit le donné DbContext en tant que service dans et active le IServiceCollectionregroupement DbContext pour cette inscription.

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

Paramètres de type

TContextService

Classe ou interface qui sera utilisée pour résoudre le contexte à partir du conteneur.

TContextImplementation

Type d’implémentation concrète à créer.

Paramètres

serviceCollection
IServiceCollection

IServiceCollection auquel ajouter les services.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Action requise pour configurer le DbContextOptions pour le contexte. Lors de l’utilisation du regroupement de contextes, la configuration des options doit être effectuée en externe ; OnConfiguring(DbContextOptionsBuilder) ne sera pas appelé.

poolSize
Int32

Définit le nombre maximal d’instances conservées par le pool. La valeur par défaut est 1024.

Retours

La même collection de services afin que plusieurs appels puissent être chaînés.

Remarques

Le regroupement DbContext peut augmenter les performances dans les scénarios à débit élevé en réutilisant des instances de contexte. Toutefois, pour la plupart des applications, ce gain de performances est très faible. Notez que lors de l’utilisation du regroupement, la configuration du contexte ne peut pas changer entre les utilisations, et les services étendus injectés dans le contexte ne seront résolus qu’une seule fois à partir de l’étendue initiale. Envisagez uniquement d’utiliser le regroupement DbContext lorsque les tests de performances indiquent qu’il offre un réel coup de pouce.

Utilisez cette méthode lors de l’utilisation de l’injection de dépendances dans votre application, par exemple avec ASP.NET Core. Pour les applications qui n’utilisent pas l’injection de dépendances, envisagez de créer DbContext des instances directement avec son constructeur. La OnConfiguring(DbContextOptionsBuilder) méthode peut ensuite être remplacée pour configurer une chaîne de connexion et d’autres options.

Entity Framework Core ne prend pas en charge les opérations parallèles multiples en cours d’exécution sur la même instance DbContext. Cela inclut l’exécution parallèle de requêtes asynchrones et toute utilisation simultanée explicite de plusieurs threads. Par conséquent, attendez toujours les appels asynchrones immédiatement ou utilisez des instances DbContext distinctes pour les opérations qui s’exécutent en parallèle. Pour plus d’informations et d’exemples, consultez Éviter les problèmes de thread dbContext .

Pour plus d’informations et d’exemples, consultez Utilisation de DbContext avec injection de dépendances et Utilisation du regroupement DbContext .

Cette surcharge a un optionsAction qui fournit le de l’application IServiceProvider. Cela est utile si vous souhaitez configurer Entity Framework Core pour résoudre ses services internes à partir du fournisseur de services d’application principal. Par défaut, nous vous recommandons d’utiliser AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) ce qui permet à Entity Framework de créer et de gérer ses propres IServiceProvider services Entity Framework internes.

S’applique à