EntityFrameworkServiceCollectionExtensions.AddDbContext Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
AddDbContext<TContext>(IServiceCollection, ServiceLifetime) |
Zaregistruje daný kontext jako službu v objektu IServiceCollection. Tuto metodu použijete při použití injektáže závislostí ve vaší aplikaci, například s ASP.NET. Další informace o nastavení injektáže závislostí najdete v tématu http://go.microsoft.com/fwlink/?LinkId=526890. |
AddDbContext<TContext>(IServiceCollection, ServiceLifetime, ServiceLifetime) |
Zaregistruje daný kontext jako službu v objektu IServiceCollection. |
AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) |
Zaregistruje daný kontext jako službu v objektu IServiceCollection. Tuto metodu použijete při použití injektáže závislostí ve vaší aplikaci, například s ASP.NET. Další informace o nastavení injektáže závislostí najdete v tématu http://go.microsoft.com/fwlink/?LinkId=526890. |
AddDbContext<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime) |
Zaregistruje daný kontext jako službu v objektu IServiceCollection. Tuto metodu použijete při použití injektáže závislostí ve vaší aplikaci, například s ASP.NET. Další informace o nastavení injektáže závislostí najdete v tématu http://go.microsoft.com/fwlink/?LinkId=526890.
Toto přetížení má , |
AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) |
Zaregistruje daný kontext jako službu v objektu IServiceCollection. |
AddDbContext<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) |
Zaregistruje daný kontext jako službu v objektu IServiceCollection. |
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, ServiceLifetime, ServiceLifetime) |
Zaregistruje daný kontext jako službu v objektu IServiceCollection. |
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) |
Zaregistruje daný kontext jako službu v objektu IServiceCollection. |
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) |
Zaregistruje daný kontext jako službu v objektu IServiceCollection. |
AddDbContext<TContext>(IServiceCollection, ServiceLifetime)
Zaregistruje daný kontext jako službu v objektu IServiceCollection. Tuto metodu použijete při použití injektáže závislostí ve vaší aplikaci, například s ASP.NET. Další informace o nastavení injektáže závislostí najdete v tématu 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
Parametry typu
- TContext
Typ kontextu, který se má zaregistrovat.
Parametry
- serviceCollection
- IServiceCollection
Chcete-li IServiceCollection přidat služby do.
- contextLifetime
- ServiceLifetime
Doba života, se kterou se má zaregistrovat služba DbContext v kontejneru.
Návraty
Stejná kolekce služeb, aby bylo možné zřetězených více volání.
Příklady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(ServiceLifetime.Scoped);
}
Platí pro
AddDbContext<TContext>(IServiceCollection, ServiceLifetime, ServiceLifetime)
Zaregistruje daný kontext jako službu v objektu 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
Parametry typu
- TContext
Typ kontextu, který se má zaregistrovat.
Parametry
- serviceCollection
- IServiceCollection
Chcete-li IServiceCollection přidat služby do.
- contextLifetime
- ServiceLifetime
Doba života, se kterou se má zaregistrovat služba DbContext v kontejneru.
- optionsLifetime
- ServiceLifetime
Doba života, se kterou chcete zaregistrovat službu DbContextOptions v kontejneru.
Návraty
Stejná kolekce služeb, aby bylo možné zřetězených více volání.
Příklady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(ServiceLifetime.Scoped);
}
Poznámky
Tuto metodu použijte při použití injektáže závislostí ve vaší aplikaci, například s ASP.NET Core. U aplikací, které nepoužívají injektáž závislostí, zvažte vytvoření DbContext instancí přímo pomocí jejich konstruktoru. Metodu OnConfiguring(DbContextOptionsBuilder) je pak možné přepsat a nakonfigurovat připojovací řetězec a další možnosti.
Entity Framework Core nepodporuje spouštění více paralelních operací ve stejné instanci DbContext. To zahrnuje paralelní spouštění asynchronních dotazů i jakékoli explicitní souběžné používání z více vláken. Proto vždy okamžitě vyčkejte na asynchronní volání nebo pro paralelně spouštěné operace používejte samostatné instance DbContext. Další informace a příklady najdete v tématu Zabránění problémům s vytvářením vláken DbContext .
Další informace a příklady najdete v tématu Použití DbContextu s injektávkou závislostí .
Platí pro
AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)
Zaregistruje daný kontext jako službu v objektu IServiceCollection. Tuto metodu použijete při použití injektáže závislostí ve vaší aplikaci, například s ASP.NET. Další informace o nastavení injektáže závislostí najdete v tématu 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
Parametry typu
- TContext
Typ kontextu, který se má zaregistrovat.
Parametry
- serviceCollection
- IServiceCollection
Chcete-li IServiceCollection přidat služby do.
- optionsAction
- Action<DbContextOptionsBuilder>
Volitelná akce pro konfiguraci objektu DbContextOptions pro kontext. To poskytuje alternativu k provedení konfigurace kontextu přepsáním OnConfiguring(DbContextOptionsBuilder) metody v odvozený kontext.
Pokud je zde zadána akce, OnConfiguring(DbContextOptionsBuilder) bude metoda stále spuštěna, pokud byla přepsána v odvozený kontext. OnConfiguring(DbContextOptionsBuilder) kromě zde provedené konfigurace se použije i konfigurace.
Aby se možnosti předaly do vašeho kontextu, musíte v kontextu vystavit konstruktor, který ho převezme DbContextOptions<TContext> a předá do základního konstruktoru nástroje DbContext.
- contextLifetime
- ServiceLifetime
Doba života, se kterou se má zaregistrovat služba DbContext v kontejneru.
Návraty
Stejná kolekce služeb, aby bylo možné zřetězených více volání.
Příklady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString));
}
Platí pro
AddDbContext<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)
Zaregistruje daný kontext jako službu v objektu IServiceCollection. Tuto metodu použijete při použití injektáže závislostí ve vaší aplikaci, například s ASP.NET. Další informace o nastavení injektáže závislostí najdete v tématu http://go.microsoft.com/fwlink/?LinkId=526890.
Toto přetížení má , optionsAction
který poskytuje aplikace IServiceProvider.
To je užitečné, pokud chcete nastavit Entity Framework tak, aby přeložila interní služby od primárního poskytovatele aplikačních služeb.
Ve výchozím nastavení doporučujeme použít jiné přetížení, které umožňuje entity Entity Framework vytvářet a udržovat vlastní IServiceProvider pro interní služby Entity Framework.
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
Parametry typu
- TContext
Typ kontextu, který se má zaregistrovat.
Parametry
- serviceCollection
- IServiceCollection
Chcete-li IServiceCollection přidat služby do.
- optionsAction
- Action<IServiceProvider,DbContextOptionsBuilder>
Volitelná akce pro konfiguraci objektu DbContextOptions pro kontext. To poskytuje alternativu k provedení konfigurace kontextu přepsáním OnConfiguring(DbContextOptionsBuilder) metody v odvozený kontext.
Pokud je zde zadána akce, OnConfiguring(DbContextOptionsBuilder) bude metoda stále spuštěna, pokud byla přepsána v odvozený kontext. OnConfiguring(DbContextOptionsBuilder) kromě zde provedené konfigurace se použije i konfigurace.
Aby se možnosti předaly do vašeho kontextu, musíte v kontextu vystavit konstruktor, který ho převezme DbContextOptions<TContext> a předá do základního konstruktoru nástroje DbContext.
- contextLifetime
- ServiceLifetime
Doba života, se kterou se má zaregistrovat služba DbContext v kontejneru.
Návraty
Stejná kolekce služeb, aby bylo možné zřetězených více volání.
Příklady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services
.AddEntityFrameworkSqlServer()
.AddDbContext<MyContext>((serviceProvider, options) =>
options.UseSqlServer(connectionString)
.UseInternalServiceProvider(serviceProvider));
}
Platí pro
AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)
Zaregistruje daný kontext jako službu v objektu 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
Parametry typu
- TContext
Typ kontextu, který se má zaregistrovat.
Parametry
- serviceCollection
- IServiceCollection
Chcete-li IServiceCollection přidat služby do.
- optionsAction
- Action<DbContextOptionsBuilder>
Volitelná akce pro konfiguraci objektu DbContextOptions pro kontext. To poskytuje alternativu k provedení konfigurace kontextu přepsáním OnConfiguring(DbContextOptionsBuilder) metody v odvozený kontext.
Pokud je zde zadána akce, OnConfiguring(DbContextOptionsBuilder) bude metoda stále spuštěna, pokud byla přepsána v odvozený kontext. OnConfiguring(DbContextOptionsBuilder) kromě zde provedené konfigurace se použije i konfigurace.
Aby se možnosti předaly do vašeho kontextu, musíte v kontextu vystavit konstruktor, který ho převezme DbContextOptions<TContext> a předá do základního konstruktoru nástroje DbContext.
- contextLifetime
- ServiceLifetime
Doba života, se kterou se má zaregistrovat služba DbContext v kontejneru.
- optionsLifetime
- ServiceLifetime
Doba života, se kterou chcete zaregistrovat službu DbContextOptions v kontejneru.
Návraty
Stejná kolekce služeb, aby bylo možné zřetězených více volání.
Příklady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString));
}
Poznámky
Tuto metodu použijte při použití injektáže závislostí ve vaší aplikaci, například s ASP.NET Core. U aplikací, které nepoužívají injektáž závislostí, zvažte vytvoření DbContext instancí přímo pomocí jejich konstruktoru. Metodu OnConfiguring(DbContextOptionsBuilder) je pak možné přepsat a nakonfigurovat připojovací řetězec a další možnosti.
Entity Framework Core nepodporuje spouštění více paralelních operací ve stejné instanci DbContext. To zahrnuje paralelní spouštění asynchronních dotazů i jakékoli explicitní souběžné používání z více vláken. Proto vždy okamžitě vyčkejte na asynchronní volání nebo pro paralelně spouštěné operace používejte samostatné instance DbContext. Další informace a příklady najdete v tématu Zabránění problémům s vytvářením vláken DbContext .
Další informace a příklady najdete v tématu Použití DbContextu s injektávkou závislostí .
Platí pro
AddDbContext<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)
Zaregistruje daný kontext jako službu v objektu 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
Parametry typu
- TContext
Typ kontextu, který se má zaregistrovat.
Parametry
- serviceCollection
- IServiceCollection
Chcete-li IServiceCollection přidat služby do.
- optionsAction
- Action<IServiceProvider,DbContextOptionsBuilder>
Volitelná akce pro konfiguraci DbContextOptions pro kontext. To poskytuje alternativu k provedení konfigurace kontextu přepsáním OnConfiguring(DbContextOptionsBuilder) metody v odvozený kontext.
Pokud je zde zadána akce, OnConfiguring(DbContextOptionsBuilder) bude metoda stále spuštěna, pokud byla přepsána v odvozený kontext. OnConfiguring(DbContextOptionsBuilder) kromě zde provedené konfigurace se použije i konfigurace.
Aby se možnosti předávaly do vašeho kontextu, musíte v kontextu vystavit konstruktor, který ho převezme DbContextOptions<TContext> a předá do základního konstruktoru nástroje DbContext.
- contextLifetime
- ServiceLifetime
Životnost, se kterou se má zaregistrovat služba DbContext v kontejneru.
- optionsLifetime
- ServiceLifetime
Životnost, se kterou se má zaregistrovat služba DbContextOptions v kontejneru.
Návraty
Stejná kolekce služeb, aby bylo možné zřetězených více volání.
Příklady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services
.AddEntityFrameworkSqlServer()
.AddDbContext<MyContext>((serviceProvider, options) =>
options.UseSqlServer(connectionString)
.UseInternalServiceProvider(serviceProvider));
}
Poznámky
Tuto metodu použijte při použití injektáže závislostí v aplikaci, například s ASP.NET Core. U aplikací, které nepoužívají injektáž závislostí, zvažte vytvoření DbContext instancí přímo pomocí jeho konstruktoru. Metodu OnConfiguring(DbContextOptionsBuilder) je pak možné přepsat a nakonfigurovat připojovací řetězec a další možnosti.
Entity Framework Core nepodporuje spouštění více paralelních operací ve stejné instanci DbContext. To zahrnuje paralelní spouštění asynchronních dotazů i jakékoli explicitní souběžné používání z více vláken. Proto vždy okamžitě vyčkejte na asynchronní volání nebo používejte samostatné instance DbContext pro operace, které se provádějí paralelně. Další informace a příklady najdete v tématu Předcházení problémům s vlákny DbContext .
Entity Framework Core nepodporuje spouštění více paralelních operací ve stejné instanci DbContext. To zahrnuje paralelní spouštění asynchronních dotazů i jakékoli explicitní souběžné používání z více vláken. Proto vždy okamžitě vyčkejte na asynchronní volání nebo používejte samostatné instance DbContext pro operace, které se provádějí paralelně. Další informace a příklady najdete v tématu Předcházení problémům s vlákny DbContext .
Další informace a příklady najdete v tématu Použití DbContextu s injektáží závislostí .
Toto přetížení má objekt optionsAction
, který poskytuje aplikaci IServiceProvider. To je užitečné, pokud chcete nastavit Entity Framework Core tak, aby přeložil interní služby od primárního poskytovatele aplikačních služeb. Ve výchozím nastavení doporučujeme použít nástroj AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) , který entitě Entity Framework umožňuje vytvářet a udržovat vlastní IServiceProvider pro interní služby Entity Framework.
Platí pro
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, ServiceLifetime, ServiceLifetime)
Zaregistruje daný kontext jako službu v objektu 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
Parametry typu
- TContextService
Třída nebo rozhraní, které se použije k překladu kontextu z kontejneru.
- TContextImplementation
Konkrétní typ implementace, který se má vytvořit.
Parametry
- serviceCollection
- IServiceCollection
Chcete-li IServiceCollection přidat služby do.
- contextLifetime
- ServiceLifetime
Životnost, se kterou se má zaregistrovat služba DbContext v kontejneru.
- optionsLifetime
- ServiceLifetime
Životnost, se kterou se má zaregistrovat služba DbContextOptions v kontejneru.
Návraty
Stejná kolekce služeb, aby bylo možné zřetězených více volání.
Příklady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(ServiceLifetime.Scoped);
}
Poznámky
Tuto metodu použijte při použití injektáže závislostí v aplikaci, například s ASP.NET Core. U aplikací, které nepoužívají injektáž závislostí, zvažte vytvoření DbContext instancí přímo pomocí jeho konstruktoru. Metodu OnConfiguring(DbContextOptionsBuilder) je pak možné přepsat a nakonfigurovat připojovací řetězec a další možnosti.
Entity Framework Core nepodporuje spouštění více paralelních operací ve stejné instanci DbContext. To zahrnuje paralelní spouštění asynchronních dotazů i jakékoli explicitní souběžné používání z více vláken. Proto vždy okamžitě vyčkejte na asynchronní volání nebo používejte samostatné instance DbContext pro operace, které se provádějí paralelně. Další informace a příklady najdete v tématu Předcházení problémům s vlákny DbContext .
Další informace a příklady najdete v tématu Použití DbContextu s injektáží závislostí .
Platí pro
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)
Zaregistruje daný kontext jako službu v objektu 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
Parametry typu
- TContextService
Třída nebo rozhraní, které se použije k překladu kontextu z kontejneru.
- TContextImplementation
Konkrétní typ implementace, který se má vytvořit.
Parametry
- serviceCollection
- IServiceCollection
Chcete-li IServiceCollection přidat služby do.
- optionsAction
- Action<DbContextOptionsBuilder>
Volitelná akce pro konfiguraci DbContextOptions pro kontext. To poskytuje alternativu k provedení konfigurace kontextu přepsáním OnConfiguring(DbContextOptionsBuilder) metody v odvozený kontext.
Pokud je zde zadána akce, OnConfiguring(DbContextOptionsBuilder) bude metoda stále spuštěna, pokud byla přepsána v odvozený kontext. OnConfiguring(DbContextOptionsBuilder) kromě zde provedené konfigurace se použije i konfigurace.
Aby se možnosti předávaly do vašeho kontextu, musíte v kontextu vystavit konstruktor, který ho převezme DbContextOptions<TContext> a předá do základního konstruktoru nástroje DbContext.
- contextLifetime
- ServiceLifetime
Životnost, se kterou se má zaregistrovat služba DbContext v kontejneru.
- optionsLifetime
- ServiceLifetime
Životnost, se kterou se má zaregistrovat služba DbContextOptions v kontejneru.
Návraty
Stejná kolekce služeb, aby bylo možné zřetězených více volání.
Příklady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString));
}
Poznámky
Tuto metodu použijte při použití injektáže závislostí v aplikaci, například s ASP.NET Core. U aplikací, které nepoužívají injektáž závislostí, zvažte vytvoření DbContext instancí přímo pomocí jeho konstruktoru. Metodu OnConfiguring(DbContextOptionsBuilder) je pak možné přepsat a nakonfigurovat připojovací řetězec a další možnosti.
Entity Framework Core nepodporuje spouštění více paralelních operací ve stejné instanci DbContext. To zahrnuje paralelní spouštění asynchronních dotazů i jakékoli explicitní souběžné používání z více vláken. Proto vždy okamžitě vyčkejte na asynchronní volání nebo používejte samostatné instance DbContext pro operace, které se provádějí paralelně. Další informace a příklady najdete v tématu Předcházení problémům s vlákny DbContext .
Další informace a příklady najdete v tématu Použití DbContextu s injektáží závislostí .
Platí pro
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)
Zaregistruje daný kontext jako službu v objektu 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
Parametry typu
- TContextService
Třída nebo rozhraní, které se použije k překladu kontextu z kontejneru.
- TContextImplementation
Konkrétní typ implementace, který se má vytvořit.
Parametry
- serviceCollection
- IServiceCollection
Chcete-li IServiceCollection přidat služby do.
- optionsAction
- Action<IServiceProvider,DbContextOptionsBuilder>
Volitelná akce pro konfiguraci DbContextOptions pro kontext. To poskytuje alternativu k provedení konfigurace kontextu přepsáním OnConfiguring(DbContextOptionsBuilder) metody v odvozený kontext.
Pokud je zde zadána akce, OnConfiguring(DbContextOptionsBuilder) bude metoda stále spuštěna, pokud byla přepsána v odvozený kontext. OnConfiguring(DbContextOptionsBuilder) kromě zde provedené konfigurace se použije i konfigurace.
Aby se možnosti předávaly do vašeho kontextu, musíte v kontextu vystavit konstruktor, který ho převezme DbContextOptions<TContext> a předá do základního konstruktoru nástroje DbContext.
- contextLifetime
- ServiceLifetime
Životnost, se kterou se má zaregistrovat služba DbContext v kontejneru.
- optionsLifetime
- ServiceLifetime
Životnost, se kterou se má zaregistrovat služba DbContextOptions v kontejneru.
Návraty
Stejná kolekce služeb, aby bylo možné zřetězených více volání.
Příklady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services
.AddEntityFrameworkSqlServer()
.AddDbContext<MyContext>((serviceProvider, options) =>
options.UseSqlServer(connectionString)
.UseInternalServiceProvider(serviceProvider));
}
Poznámky
Tuto metodu použijte při použití injektáže závislostí v aplikaci, například s ASP.NET Core. U aplikací, které nepoužívají injektáž závislostí, zvažte vytvoření DbContext instancí přímo pomocí jeho konstruktoru. Metodu OnConfiguring(DbContextOptionsBuilder) je pak možné přepsat a nakonfigurovat připojovací řetězec a další možnosti.
Entity Framework Core nepodporuje spouštění více paralelních operací ve stejné instanci DbContext. To zahrnuje paralelní spouštění asynchronních dotazů i jakékoli explicitní souběžné používání z více vláken. Proto vždy okamžitě vyčkejte na asynchronní volání nebo používejte samostatné instance DbContext pro operace, které se provádějí paralelně. Další informace a příklady najdete v tématu Předcházení problémům s vlákny DbContext .
Další informace a příklady najdete v tématu Použití DbContextu s injektáží závislostí .
Toto přetížení má objekt optionsAction
, který poskytuje aplikaci IServiceProvider. To je užitečné, pokud chcete nastavit Entity Framework Core tak, aby přeložil interní služby od primárního poskytovatele aplikačních služeb. Ve výchozím nastavení doporučujeme použít nástroj AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) , který entitě Entity Framework umožňuje vytvářet a udržovat vlastní IServiceProvider pro interní služby Entity Framework.
Platí pro
Entity Framework