EntityFrameworkServiceCollectionExtensions.AddDbContext Méthode

Définition

Surcharges

AddDbContext<TContext>(IServiceCollection, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection Vous utilisez cette méthode lors de l’utilisation de l’injection de dépendances dans votre application, par exemple avec ASP.NET. Pour plus d’informations sur la configuration de l’injection de dépendances, consultez http://go.microsoft.com/fwlink/?LinkId=526890.

AddDbContext<TContext>(IServiceCollection, ServiceLifetime, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection

AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection Vous utilisez cette méthode lors de l’utilisation de l’injection de dépendances dans votre application, par exemple avec ASP.NET. Pour plus d’informations sur la configuration de l’injection de dépendances, consultez http://go.microsoft.com/fwlink/?LinkId=526890.

AddDbContext<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection Vous utilisez cette méthode lors de l’utilisation de l’injection de dépendances dans votre application, par exemple avec ASP.NET. Pour plus d’informations sur la configuration de l’injection de dépendances, consultez http://go.microsoft.com/fwlink/?LinkId=526890.

Cette surcharge a un optionsAction qui fournit les applications IServiceProvider. Cela est utile si vous souhaitez configurer Entity Framework pour résoudre ses services internes à partir du fournisseur de services d’application principal. Par défaut, nous vous recommandons d’utiliser l’autre surcharge, qui permet à Entity Framework de créer et de gérer ses propres IServiceProvider services Entity Framework internes.

AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection

AddDbContext<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, ServiceLifetime, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection

AddDbContext<TContext>(IServiceCollection, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection Vous utilisez cette méthode lors de l’utilisation de l’injection de dépendances dans votre application, par exemple avec ASP.NET. Pour plus d’informations sur la configuration de l’injection de dépendances, consultez http://go.microsoft.com/fwlink/?LinkId=526890.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, contextLifetime As ServiceLifetime) As IServiceCollection

Paramètres de type

TContext

Type de contexte à inscrire.

Paramètres

serviceCollection
IServiceCollection

IServiceCollection auquel ajouter les services.

contextLifetime
ServiceLifetime

Durée de vie avec laquelle inscrire le service DbContext dans le conteneur.

Retours

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

Exemples

public void ConfigureServices(IServiceCollection services) 
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(ServiceLifetime.Scoped); 
}

S’applique à

AddDbContext<TContext>(IServiceCollection, ServiceLifetime, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, contextLifetime As ServiceLifetime, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection

Paramètres de type

TContext

Type de contexte à inscrire.

Paramètres

serviceCollection
IServiceCollection

IServiceCollection auquel ajouter les services.

contextLifetime
ServiceLifetime

Durée de vie avec laquelle inscrire le service DbContext dans le conteneur.

optionsLifetime
ServiceLifetime

Durée de vie avec laquelle inscrire le service DbContextOptions dans le conteneur.

Retours

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

Exemples

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(ServiceLifetime.Scoped);
}

Remarques

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 l’injection de dépendances .

S’applique à

AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection Vous utilisez cette méthode lors de l’utilisation de l’injection de dépendances dans votre application, par exemple avec ASP.NET. Pour plus d’informations sur la configuration de l’injection de dépendances, consultez http://go.microsoft.com/fwlink/?LinkId=526890.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection

Paramètres de type

TContext

Type de contexte à inscrire.

Paramètres

serviceCollection
IServiceCollection

IServiceCollection auquel ajouter les services.

optionsAction
Action<DbContextOptionsBuilder>

Action facultative pour configurer le DbContextOptions pour le contexte. Cela offre une alternative à l’exécution de la configuration du contexte en remplaçant la OnConfiguring(DbContextOptionsBuilder) méthode dans votre contexte dérivé.

Si une action est fournie ici, la OnConfiguring(DbContextOptionsBuilder) méthode est toujours exécutée si elle a été remplacée sur le contexte dérivé. OnConfiguring(DbContextOptionsBuilder) la configuration sera appliquée en plus de la configuration effectuée ici.

Pour que les options soient passées dans votre contexte, vous devez exposer un constructeur sur votre contexte qui l’accepte DbContextOptions<TContext> et le transmet au constructeur de base de DbContext.

contextLifetime
ServiceLifetime

Durée de vie avec laquelle inscrire le service DbContext dans le conteneur.

Retours

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

Exemples

public void ConfigureServices(IServiceCollection services) 
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString)); 
}

S’applique à

AddDbContext<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection Vous utilisez cette méthode lors de l’utilisation de l’injection de dépendances dans votre application, par exemple avec ASP.NET. Pour plus d’informations sur la configuration de l’injection de dépendances, consultez http://go.microsoft.com/fwlink/?LinkId=526890.

Cette surcharge a un optionsAction qui fournit les applications IServiceProvider. Cela est utile si vous souhaitez configurer Entity Framework pour résoudre ses services internes à partir du fournisseur de services d’application principal. Par défaut, nous vous recommandons d’utiliser l’autre surcharge, qui permet à Entity Framework de créer et de gérer ses propres IServiceProvider services Entity Framework internes.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) 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 facultative pour configurer le DbContextOptions pour le contexte. Cela offre une alternative à l’exécution de la configuration du contexte en remplaçant la OnConfiguring(DbContextOptionsBuilder) méthode dans votre contexte dérivé.

Si une action est fournie ici, la OnConfiguring(DbContextOptionsBuilder) méthode est toujours exécutée si elle a été remplacée sur le contexte dérivé. OnConfiguring(DbContextOptionsBuilder) la configuration sera appliquée en plus de la configuration effectuée ici.

Pour que les options soient passées dans votre contexte, vous devez exposer un constructeur sur votre contexte qui l’accepte DbContextOptions<TContext> et le transmet au constructeur de base de DbContext.

contextLifetime
ServiceLifetime

Durée de vie avec laquelle inscrire le service DbContext dans le conteneur.

Retours

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

Exemples

public void ConfigureServices(IServiceCollection services) 
{
    var connectionString = "connection string to database";

    services
        .AddEntityFrameworkSqlServer()
        .AddDbContext<MyContext>((serviceProvider, options) => 
            options.UseSqlServer(connectionString)
                   .UseInternalServiceProvider(serviceProvider)); 
}

S’applique à

AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection

Paramètres de type

TContext

Type de contexte à inscrire.

Paramètres

serviceCollection
IServiceCollection

IServiceCollection auquel ajouter les services.

optionsAction
Action<DbContextOptionsBuilder>

Action facultative pour configurer le DbContextOptions pour le contexte. Cela offre une alternative à l’exécution de la configuration du contexte en remplaçant la OnConfiguring(DbContextOptionsBuilder) méthode dans votre contexte dérivé.

Si une action est fournie ici, la OnConfiguring(DbContextOptionsBuilder) méthode est toujours exécutée si elle a été remplacée sur le contexte dérivé. OnConfiguring(DbContextOptionsBuilder) la configuration sera appliquée en plus de la configuration effectuée ici.

Pour que les options soient passées dans votre contexte, vous devez exposer un constructeur sur votre contexte qui l’accepte DbContextOptions<TContext> et le transmet au constructeur de base de DbContext.

contextLifetime
ServiceLifetime

Durée de vie avec laquelle inscrire le service DbContext dans le conteneur.

optionsLifetime
ServiceLifetime

Durée de vie avec laquelle inscrire le service DbContextOptions dans le conteneur.

Retours

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

Exemples

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString));
}

Remarques

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 l’injection de dépendances .

S’applique à

AddDbContext<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) 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 facultative pour configurer le DbContextOptions pour le contexte. Cela offre une alternative à la configuration du contexte en remplaçant la OnConfiguring(DbContextOptionsBuilder) méthode dans votre contexte dérivé.

Si une action est fournie ici, la OnConfiguring(DbContextOptionsBuilder) méthode est toujours exécutée si elle a été remplacée sur le contexte dérivé. OnConfiguring(DbContextOptionsBuilder) la configuration sera appliquée en plus de la configuration effectuée ici.

Pour que les options soient transmises dans votre contexte, vous devez exposer un constructeur sur votre contexte qui le prend DbContextOptions<TContext> et le transmet au constructeur de base de DbContext.

contextLifetime
ServiceLifetime

Durée de vie avec laquelle inscrire le service DbContext dans le conteneur.

optionsLifetime
ServiceLifetime

Durée de vie avec laquelle inscrire le service DbContextOptions dans le conteneur.

Retours

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

Exemples

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services
        .AddEntityFrameworkSqlServer()
        .AddDbContext<MyContext>((serviceProvider, options) =>
            options.UseSqlServer(connectionString)
                   .UseInternalServiceProvider(serviceProvider));
}

Remarques

Utilisez cette méthode lorsque vous utilisez 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 immédiatement les appels asynchrones 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 .

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 immédiatement les appels asynchrones 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 l’injection de dépendances .

Cette surcharge a un optionsAction qui fournit 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 AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) ce qui permet à Entity Framework de créer et de gérer ses propres IServiceProvider services Entity Framework internes.

S’applique à

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, ServiceLifetime, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextService : null and 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContext(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, contextLifetime As ServiceLifetime, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) 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 concret à créer.

Paramètres

serviceCollection
IServiceCollection

IServiceCollection auquel ajouter les services.

contextLifetime
ServiceLifetime

Durée de vie avec laquelle inscrire le service DbContext dans le conteneur.

optionsLifetime
ServiceLifetime

Durée de vie avec laquelle inscrire le service DbContextOptions dans le conteneur.

Retours

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

Exemples

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(ServiceLifetime.Scoped);
}

Remarques

Utilisez cette méthode lorsque vous utilisez 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 immédiatement les appels asynchrones 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 l’injection de dépendances .

S’applique à

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContext(Of TContextService, TContextImplementation) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) 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 concret à créer.

Paramètres

serviceCollection
IServiceCollection

IServiceCollection auquel ajouter les services.

optionsAction
Action<DbContextOptionsBuilder>

Action facultative pour configurer le DbContextOptions pour le contexte. Cela offre une alternative à la configuration du contexte en remplaçant la OnConfiguring(DbContextOptionsBuilder) méthode dans votre contexte dérivé.

Si une action est fournie ici, la OnConfiguring(DbContextOptionsBuilder) méthode est toujours exécutée si elle a été remplacée sur le contexte dérivé. OnConfiguring(DbContextOptionsBuilder) la configuration sera appliquée en plus de la configuration effectuée ici.

Pour que les options soient transmises dans votre contexte, vous devez exposer un constructeur sur votre contexte qui le prend DbContextOptions<TContext> et le transmet au constructeur de base de DbContext.

contextLifetime
ServiceLifetime

Durée de vie avec laquelle inscrire le service DbContext dans le conteneur.

optionsLifetime
ServiceLifetime

Durée de vie avec laquelle inscrire le service DbContextOptions dans le conteneur.

Retours

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

Exemples

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString));
}

Remarques

Utilisez cette méthode lorsque vous utilisez 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 immédiatement les appels asynchrones 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 l’injection de dépendances .

S’applique à

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)

Inscrit le contexte donné en tant que service dans .IServiceCollection

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContext(Of TContextService, TContextImplementation) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) 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 concret à créer.

Paramètres

serviceCollection
IServiceCollection

IServiceCollection auquel ajouter les services.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Action facultative pour configurer le DbContextOptions pour le contexte. Cela offre une alternative à la configuration du contexte en remplaçant la OnConfiguring(DbContextOptionsBuilder) méthode dans votre contexte dérivé.

Si une action est fournie ici, la OnConfiguring(DbContextOptionsBuilder) méthode est toujours exécutée si elle a été remplacée sur le contexte dérivé. OnConfiguring(DbContextOptionsBuilder) la configuration sera appliquée en plus de la configuration effectuée ici.

Pour que les options soient transmises dans votre contexte, vous devez exposer un constructeur sur votre contexte qui le prend DbContextOptions<TContext> et le transmet au constructeur de base de DbContext.

contextLifetime
ServiceLifetime

Durée de vie avec laquelle inscrire le service DbContext dans le conteneur.

optionsLifetime
ServiceLifetime

Durée de vie avec laquelle inscrire le service DbContextOptions dans le conteneur.

Retours

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

Exemples

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services
        .AddEntityFrameworkSqlServer()
        .AddDbContext<MyContext>((serviceProvider, options) =>
            options.UseSqlServer(connectionString)
                   .UseInternalServiceProvider(serviceProvider));
}

Remarques

Utilisez cette méthode lorsque vous utilisez 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 immédiatement les appels asynchrones 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 l’injection de dépendances .

Cette surcharge a un optionsAction qui fournit 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 AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) ce qui permet à Entity Framework de créer et de gérer ses propres IServiceProvider services Entity Framework internes.

S’applique à