EntityFrameworkServiceCollectionExtensions.AddDbContextFactory Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
| Nome | Descrizione |
|---|---|
| AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime) |
Registra un oggetto IDbContextFactory<TContext> in IServiceCollection per creare istanze di tipo specificato DbContext . |
| AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) |
Registra un oggetto IDbContextFactory<TContext> in IServiceCollection per creare istanze di tipo specificato DbContext . |
| AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) |
Registra un oggetto IDbContextFactory<TContext> in IServiceCollection per creare istanze di tipo specificato DbContext . |
| AddDbContextFactory<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime) |
Registra un oggetto IDbContextFactory<TContext> in IServiceCollection per creare istanze di tipo specificato DbContext . |
AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)
Registra un oggetto IDbContextFactory<TContext> in IServiceCollection per creare istanze di tipo specificato DbContext .
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext,TFactory>(this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext where TFactory : Microsoft.EntityFrameworkCore.IDbContextFactory<TContext>;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext,TFactory>(this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext where TFactory : Microsoft.EntityFrameworkCore.IDbContextFactory<TContext>;
static member AddDbContextFactory : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext and 'Factory :> Microsoft.EntityFrameworkCore.IDbContextFactory<'Context>)
<Extension()>
Public Function AddDbContextFactory(Of TContext As DbContext, TFactory As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) As IServiceCollection
Parametri di tipo
- TContext
Tipo di DbContext da creare dalla factory.
- TFactory
Tipo di IDbContextFactory<TContext> da registrare.
Parametri
- serviceCollection
- IServiceCollection
Oggetto IServiceCollection a cui aggiungere servizi.
- optionsAction
- Action<IServiceProvider,DbContextOptionsBuilder>
Azione facoltativa per configurare per DbContextOptions il contesto. Ciò offre un'alternativa all'esecuzione della configurazione del contesto eseguendo l'override del OnConfiguring(DbContextOptionsBuilder) metodo nel contesto derivato.
Se in questo caso viene fornita un'azione, il OnConfiguring(DbContextOptionsBuilder) metodo verrà comunque eseguito se è stato sottoposto a override nel contesto derivato. OnConfiguring(DbContextOptionsBuilder) la configurazione verrà applicata oltre alla configurazione eseguita qui.
Affinché le opzioni vengano passate nel contesto, è necessario esporre un costruttore nel contesto che accetta DbContextOptions<TContext> e lo passa al costruttore di base di DbContext.
- lifetime
- ServiceLifetime
Durata con cui registrare la factory e le opzioni. Il valore predefinito è Singleton
Valori restituiti
La stessa raccolta di servizi in modo che sia possibile concatenare più chiamate.
Commenti
La registrazione di una factory anziché la registrazione diretta del tipo di contesto consente di creare facilmente nuove DbContext istanze. La registrazione di una factory è consigliata per le applicazioni Blazor e altre situazioni in cui l'ambito di inserimento delle dipendenze non è allineato alla durata del contesto.
Usare questo metodo quando si usa l'inserimento delle dipendenze nell'applicazione, ad esempio con Blazor. Per le applicazioni che non usano l'inserimento delle dipendenze, è consigliabile creare DbContext istanze direttamente con il relativo costruttore. È quindi possibile eseguire l'override del OnConfiguring(DbContextOptionsBuilder) metodo per configurare un stringa di connessione e altre opzioni.
Per praticità, questo metodo registra anche il tipo di contesto stesso come servizio con ambito. Ciò consente di risolvere un'istanza di contesto da un ambito di inserimento delle dipendenze direttamente o creato dalla factory, in base alle esigenze.
Questo overload consente di registrare un'implementazione specifica di IDbContextFactory<TContext> anziché usare la factory predefinita fornita con EF Core.
Questo overload include un oggetto optionsAction che fornisce l'oggetto dell'applicazione IServiceProvider. Ciò è utile se si vuole configurare Entity Framework Core risolvere i servizi interni dal provider di servizi dell'applicazione primario. Per impostazione predefinita, è consigliabile usare AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) che consente a Entity Framework di creare e mantenere il proprio IServiceProvider per i servizi di Entity Framework interni.
Entity Framework Core non supporta più operazioni parallele in esecuzione nella stessa istanza di DbContext. Ciò include sia l'esecuzione parallela di query asincrone che qualsiasi uso simultaneo esplicito da più thread. Pertanto, attendere sempre le chiamate asincrone immediatamente o usare istanze DbContext separate per le operazioni eseguite in parallelo. Per altre informazioni ed esempi, vedere Evitare problemi di threading DbContext .
Per altre informazioni ed esempi, vedere Uso di DbContext con inserimento delle dipendenze e Uso di factory DbContext .
Si applica a
AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)
Registra un oggetto IDbContextFactory<TContext> in IServiceCollection per creare istanze di tipo specificato DbContext .
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext,TFactory>(this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext where TFactory : Microsoft.EntityFrameworkCore.IDbContextFactory<TContext>;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext,TFactory>(this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext where TFactory : Microsoft.EntityFrameworkCore.IDbContextFactory<TContext>;
static member AddDbContextFactory : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext and 'Factory :> Microsoft.EntityFrameworkCore.IDbContextFactory<'Context>)
<Extension()>
Public Function AddDbContextFactory(Of TContext As DbContext, TFactory As DbContext) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) As IServiceCollection
Parametri di tipo
- TContext
Tipo di DbContext da creare dalla factory.
- TFactory
Tipo di IDbContextFactory<TContext> da registrare.
Parametri
- serviceCollection
- IServiceCollection
Oggetto IServiceCollection a cui aggiungere servizi.
- optionsAction
- Action<DbContextOptionsBuilder>
Azione facoltativa per configurare per DbContextOptions il contesto. Ciò offre un'alternativa all'esecuzione della configurazione del contesto eseguendo l'override del OnConfiguring(DbContextOptionsBuilder) metodo nel contesto derivato.
Se in questo caso viene fornita un'azione, il OnConfiguring(DbContextOptionsBuilder) metodo verrà comunque eseguito se è stato sottoposto a override nel contesto derivato. OnConfiguring(DbContextOptionsBuilder) la configurazione verrà applicata oltre alla configurazione eseguita qui.
Affinché le opzioni vengano passate nel contesto, è necessario esporre un costruttore nel contesto che accetta DbContextOptions<TContext> e lo passa al costruttore di base di DbContext.
- lifetime
- ServiceLifetime
Durata con cui registrare la factory e le opzioni. Il valore predefinito è Singleton
Valori restituiti
La stessa raccolta di servizi in modo che sia possibile concatenare più chiamate.
Commenti
La registrazione di una factory anziché la registrazione diretta del tipo di contesto consente di creare facilmente nuove DbContext istanze. La registrazione di una factory è consigliata per le applicazioni Blazor e altre situazioni in cui l'ambito di inserimento delle dipendenze non è allineato alla durata del contesto.
Usare questo metodo quando si usa l'inserimento delle dipendenze nell'applicazione, ad esempio con Blazor. Per le applicazioni che non usano l'inserimento delle dipendenze, è consigliabile creare DbContext istanze direttamente con il relativo costruttore. È quindi possibile eseguire l'override del OnConfiguring(DbContextOptionsBuilder) metodo per configurare un stringa di connessione e altre opzioni.
Per praticità, questo metodo registra anche il tipo di contesto stesso come servizio con ambito. Ciò consente di risolvere un'istanza di contesto da un ambito di inserimento delle dipendenze direttamente o creato dalla factory, in base alle esigenze.
Questo overload consente di registrare un'implementazione specifica di IDbContextFactory<TContext> anziché usare la factory predefinita fornita con EF Core.
Entity Framework Core non supporta più operazioni parallele in esecuzione nella stessa istanza di DbContext. Ciò include sia l'esecuzione parallela di query asincrone che qualsiasi uso simultaneo esplicito da più thread. Pertanto, attendere sempre le chiamate asincrone immediatamente o usare istanze DbContext separate per le operazioni eseguite in parallelo. Per altre informazioni ed esempi, vedere Evitare problemi di threading DbContext .
Per altre informazioni ed esempi, vedere Uso di DbContext con inserimento delle dipendenze e Uso di factory DbContext .
Si applica a
AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)
Registra un oggetto IDbContextFactory<TContext> in IServiceCollection per creare istanze di tipo specificato DbContext .
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext>(this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext>(this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextFactory : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextFactory(Of TContext As DbContext) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) As IServiceCollection
Parametri di tipo
- TContext
Tipo di DbContext da creare dalla factory.
Parametri
- serviceCollection
- IServiceCollection
Oggetto IServiceCollection a cui aggiungere servizi.
- optionsAction
- Action<DbContextOptionsBuilder>
Azione facoltativa per configurare per DbContextOptions il contesto. Ciò offre un'alternativa all'esecuzione della configurazione del contesto eseguendo l'override del OnConfiguring(DbContextOptionsBuilder) metodo nel contesto derivato.
Se in questo caso viene fornita un'azione, il OnConfiguring(DbContextOptionsBuilder) metodo verrà comunque eseguito se è stato sottoposto a override nel contesto derivato. OnConfiguring(DbContextOptionsBuilder) la configurazione verrà applicata oltre alla configurazione eseguita qui.
Affinché le opzioni vengano passate nel contesto, è necessario esporre un costruttore nel contesto che accetta DbContextOptions<TContext> e lo passa al costruttore di base di DbContext.
- lifetime
- ServiceLifetime
Durata con cui registrare la factory e le opzioni. Il valore predefinito è Singleton
Valori restituiti
La stessa raccolta di servizi in modo che sia possibile concatenare più chiamate.
Commenti
La registrazione di una factory anziché la registrazione diretta del tipo di contesto consente di creare facilmente nuove DbContext istanze. La registrazione di una factory è consigliata per le applicazioni Blazor e altre situazioni in cui l'ambito di inserimento delle dipendenze non è allineato alla durata del contesto.
Usare questo metodo quando si usa l'inserimento delle dipendenze nell'applicazione, ad esempio con Blazor. Per le applicazioni che non usano l'inserimento delle dipendenze, è consigliabile creare DbContext istanze direttamente con il relativo costruttore. È quindi possibile eseguire l'override del OnConfiguring(DbContextOptionsBuilder) metodo per configurare un stringa di connessione e altre opzioni.
Per praticità, questo metodo registra anche il tipo di contesto stesso come servizio con ambito. Ciò consente di risolvere un'istanza di contesto da un ambito di inserimento delle dipendenze direttamente o creato dalla factory, in base alle esigenze.
Entity Framework Core non supporta più operazioni parallele in esecuzione nella stessa istanza di DbContext. Ciò include sia l'esecuzione parallela di query asincrone che qualsiasi uso simultaneo esplicito da più thread. Pertanto, attendere sempre le chiamate asincrone immediatamente o usare istanze DbContext separate per le operazioni eseguite in parallelo. Per altre informazioni ed esempi, vedere Evitare problemi di threading DbContext .
Per altre informazioni ed esempi, vedere Uso di DbContext con inserimento delle dipendenze e Uso di factory DbContext .
Si applica a
AddDbContextFactory<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)
Registra un oggetto IDbContextFactory<TContext> in IServiceCollection per creare istanze di tipo specificato DbContext .
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext>(this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextFactory : 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 AddDbContextFactory(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) As IServiceCollection
Parametri di tipo
- TContext
Tipo di DbContext da creare dalla factory.
Parametri
- serviceCollection
- IServiceCollection
Oggetto IServiceCollection a cui aggiungere servizi.
- optionsAction
- Action<IServiceProvider,DbContextOptionsBuilder>
Azione facoltativa per configurare per DbContextOptions il contesto. Ciò offre un'alternativa all'esecuzione della configurazione del contesto eseguendo l'override del OnConfiguring(DbContextOptionsBuilder) metodo nel contesto derivato.
Se in questo caso viene fornita un'azione, il OnConfiguring(DbContextOptionsBuilder) metodo verrà comunque eseguito se è stato sottoposto a override nel contesto derivato. OnConfiguring(DbContextOptionsBuilder) la configurazione verrà applicata oltre alla configurazione eseguita qui.
Affinché le opzioni vengano passate nel contesto, è necessario esporre un costruttore nel contesto che accetta DbContextOptions<TContext> e lo passa al costruttore di base di DbContext.
- lifetime
- ServiceLifetime
Durata con cui registrare la factory e le opzioni. Il valore predefinito è Singleton
Valori restituiti
La stessa raccolta di servizi in modo che sia possibile concatenare più chiamate.
Commenti
La registrazione di una factory anziché la registrazione diretta del tipo di contesto consente di creare facilmente nuove DbContext istanze. La registrazione di una factory è consigliata per le applicazioni Blazor e altre situazioni in cui l'ambito di inserimento delle dipendenze non è allineato alla durata del contesto.
Usare questo metodo quando si usa l'inserimento delle dipendenze nell'applicazione, ad esempio con Blazor. Per le applicazioni che non usano l'inserimento delle dipendenze, è consigliabile creare DbContext istanze direttamente con il relativo costruttore. È quindi possibile eseguire l'override del OnConfiguring(DbContextOptionsBuilder) metodo per configurare un stringa di connessione e altre opzioni.
Per praticità, questo metodo registra anche il tipo di contesto stesso come servizio con ambito. Ciò consente di risolvere un'istanza di contesto da un ambito di inserimento delle dipendenze direttamente o creato dalla factory, in base alle esigenze.
Questo overload include un oggetto optionsAction che fornisce l'oggetto dell'applicazione IServiceProvider. Ciò è utile se si vuole configurare Entity Framework Core risolvere i servizi interni dal provider di servizi dell'applicazione primario. Per impostazione predefinita, è consigliabile usare AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) che consente a Entity Framework di creare e mantenere il proprio IServiceProvider per i servizi di Entity Framework interni.
Entity Framework Core non supporta più operazioni parallele in esecuzione nella stessa istanza di DbContext. Ciò include sia l'esecuzione parallela di query asincrone che qualsiasi uso simultaneo esplicito da più thread. Pertanto, attendere sempre le chiamate asincrone immediatamente o usare istanze DbContext separate per le operazioni eseguite in parallelo. Per altre informazioni ed esempi, vedere Evitare problemi di threading DbContext .
Per altre informazioni ed esempi, vedere Uso di DbContext con inserimento delle dipendenze e Uso di factory DbContext .