EntityFrameworkServiceCollectionExtensions.AddDbContext Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
AddDbContext<TContext>(IServiceCollection, ServiceLifetime) |
Rejestruje dany kontekst jako usługę w elemecie IServiceCollection. Ta metoda jest używana podczas korzystania z iniekcji zależności w aplikacji, na przykład w przypadku ASP.NET. Aby uzyskać więcej informacji na temat konfigurowania wstrzykiwania zależności, zobacz http://go.microsoft.com/fwlink/?LinkId=526890. |
AddDbContext<TContext>(IServiceCollection, ServiceLifetime, ServiceLifetime) |
Rejestruje dany kontekst jako usługę w elemecie IServiceCollection. |
AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) |
Rejestruje dany kontekst jako usługę w elemecie IServiceCollection. Ta metoda jest używana podczas korzystania z iniekcji zależności w aplikacji, na przykład w przypadku ASP.NET. Aby uzyskać więcej informacji na temat konfigurowania wstrzykiwania zależności, zobacz http://go.microsoft.com/fwlink/?LinkId=526890. |
AddDbContext<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime) |
Rejestruje dany kontekst jako usługę w elemecie IServiceCollection. Ta metoda jest używana podczas korzystania z iniekcji zależności w aplikacji, na przykład w przypadku ASP.NET. Aby uzyskać więcej informacji na temat konfigurowania wstrzykiwania zależności, zobacz http://go.microsoft.com/fwlink/?LinkId=526890.
To przeciążenie ma element |
AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) |
Rejestruje dany kontekst jako usługę w elemecie IServiceCollection. |
AddDbContext<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) |
Rejestruje dany kontekst jako usługę w elemecie IServiceCollection. |
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, ServiceLifetime, ServiceLifetime) |
Rejestruje dany kontekst jako usługę w elemecie IServiceCollection. |
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) |
Rejestruje dany kontekst jako usługę w elemecie IServiceCollection. |
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) |
Rejestruje dany kontekst jako usługę w elemecie IServiceCollection. |
AddDbContext<TContext>(IServiceCollection, ServiceLifetime)
Rejestruje dany kontekst jako usługę w elemecie IServiceCollection. Ta metoda jest używana podczas korzystania z iniekcji zależności w aplikacji, na przykład w przypadku ASP.NET. Aby uzyskać więcej informacji na temat konfigurowania wstrzykiwania zależności, zobacz 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 kontekstu do zarejestrowania.
Parametry
- serviceCollection
- IServiceCollection
Element do dodawania IServiceCollection usług.
- contextLifetime
- ServiceLifetime
Okres istnienia, za pomocą którego należy zarejestrować usługę DbContext w kontenerze.
Zwraca
Ta sama kolekcja usług, dzięki czemu można połączyć łańcuch wielu wywołań.
Przykłady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(ServiceLifetime.Scoped);
}
Dotyczy
AddDbContext<TContext>(IServiceCollection, ServiceLifetime, ServiceLifetime)
Rejestruje dany kontekst jako usługę w elemecie 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 kontekstu do zarejestrowania.
Parametry
- serviceCollection
- IServiceCollection
Element do dodawania IServiceCollection usług.
- contextLifetime
- ServiceLifetime
Okres istnienia, za pomocą którego należy zarejestrować usługę DbContext w kontenerze.
- optionsLifetime
- ServiceLifetime
Okres istnienia, za pomocą którego należy zarejestrować usługę DbContextOptions w kontenerze.
Zwraca
Ta sama kolekcja usług, dzięki czemu można połączyć łańcuch wielu wywołań.
Przykłady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(ServiceLifetime.Scoped);
}
Uwagi
Użyj tej metody podczas korzystania z iniekcji zależności w aplikacji, na przykład w przypadku ASP.NET Core. W przypadku aplikacji, które nie używają iniekcji zależności, rozważ utworzenie DbContext wystąpień bezpośrednio z jego konstruktorem. Następnie OnConfiguring(DbContextOptionsBuilder) można zastąpić metodę w celu skonfigurowania parametrów połączenia i innych opcji.
Platforma Entity Framework Core nie obsługuje wielu równoległych operacji uruchamianych w tym samym wystąpieniu DbContext. Obejmuje to zarówno równoległe wykonywanie zapytań asynchronicznych, jak i wszelkie jawne współbieżne użycie z wielu wątków. W związku z tym zawsze czekaj na wywołania asynchroniczne natychmiast lub używaj oddzielnych wystąpień dbContext dla operacji wykonywanych równolegle. Aby uzyskać więcej informacji i przykładów, zobacz Unikanie problemów z wątkami dbContext .
Aby uzyskać więcej informacji i przykładów, zobacz Using DbContext with dependency injection (Używanie elementu DbContext z iniekcją zależności ).
Dotyczy
AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)
Rejestruje dany kontekst jako usługę w elemecie IServiceCollection. Ta metoda jest używana podczas korzystania z iniekcji zależności w aplikacji, na przykład w przypadku ASP.NET. Aby uzyskać więcej informacji na temat konfigurowania wstrzykiwania zależności, zobacz 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 kontekstu do zarejestrowania.
Parametry
- serviceCollection
- IServiceCollection
Element do dodawania IServiceCollection usług.
- optionsAction
- Action<DbContextOptionsBuilder>
Opcjonalna akcja umożliwiająca skonfigurowanie DbContextOptions elementu dla kontekstu. Zapewnia to alternatywę dla wykonywania konfiguracji kontekstu przez zastąpienie OnConfiguring(DbContextOptionsBuilder) metody w kontekście pochodnym.
Jeśli w tym miejscu zostanie dostarczona akcja, metoda będzie nadal uruchamiana, OnConfiguring(DbContextOptionsBuilder) jeśli została zastąpiona w kontekście pochodnym. OnConfiguring(DbContextOptionsBuilder) konfiguracja zostanie zastosowana oprócz konfiguracji wykonanej tutaj.
Aby opcje, które mają zostać przekazane do kontekstu, należy uwidocznić konstruktor w kontekście, który przyjmuje DbContextOptions<TContext> i przekazuje go do podstawowego konstruktora .DbContext
- contextLifetime
- ServiceLifetime
Okres istnienia, za pomocą którego należy zarejestrować usługę DbContext w kontenerze.
Zwraca
Ta sama kolekcja usług, dzięki czemu można połączyć łańcuch wielu wywołań.
Przykłady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString));
}
Dotyczy
AddDbContext<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)
Rejestruje dany kontekst jako usługę w elemecie IServiceCollection. Ta metoda jest używana podczas korzystania z iniekcji zależności w aplikacji, na przykład w przypadku ASP.NET. Aby uzyskać więcej informacji na temat konfigurowania wstrzykiwania zależności, zobacz http://go.microsoft.com/fwlink/?LinkId=526890.
To przeciążenie ma element optionsAction
, który udostępnia aplikacje IServiceProvider.
Jest to przydatne, jeśli chcesz skonfigurować program Entity Framework, aby rozwiązać problemy z jego usługami wewnętrznymi od podstawowego dostawcy usług aplikacji.
Domyślnie zalecamy użycie innego przeciążenia, które umożliwia programowi Entity Framework tworzenie i konserwację własnych IServiceProvider dla wewnętrznych usług 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 kontekstu do zarejestrowania.
Parametry
- serviceCollection
- IServiceCollection
Element do dodawania IServiceCollection usług.
- optionsAction
- Action<IServiceProvider,DbContextOptionsBuilder>
Opcjonalna akcja umożliwiająca skonfigurowanie DbContextOptions elementu dla kontekstu. Zapewnia to alternatywę dla wykonywania konfiguracji kontekstu przez zastąpienie OnConfiguring(DbContextOptionsBuilder) metody w kontekście pochodnym.
Jeśli w tym miejscu zostanie dostarczona akcja, metoda będzie nadal uruchamiana, OnConfiguring(DbContextOptionsBuilder) jeśli została zastąpiona w kontekście pochodnym. OnConfiguring(DbContextOptionsBuilder) konfiguracja zostanie zastosowana oprócz konfiguracji wykonanej tutaj.
Aby opcje, które mają zostać przekazane do kontekstu, należy uwidocznić konstruktor w kontekście, który przyjmuje DbContextOptions<TContext> i przekazuje go do podstawowego konstruktora .DbContext
- contextLifetime
- ServiceLifetime
Okres istnienia, za pomocą którego należy zarejestrować usługę DbContext w kontenerze.
Zwraca
Ta sama kolekcja usług, dzięki czemu można połączyć łańcuch wielu wywołań.
Przykłady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services
.AddEntityFrameworkSqlServer()
.AddDbContext<MyContext>((serviceProvider, options) =>
options.UseSqlServer(connectionString)
.UseInternalServiceProvider(serviceProvider));
}
Dotyczy
AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)
Rejestruje dany kontekst jako usługę w pliku 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 kontekstu do zarejestrowania.
Parametry
- serviceCollection
- IServiceCollection
Element do dodawania IServiceCollection usług.
- optionsAction
- Action<DbContextOptionsBuilder>
Opcjonalna akcja umożliwiająca skonfigurowanie DbContextOptions elementu dla kontekstu. Zapewnia to alternatywę dla wykonywania konfiguracji kontekstu przez zastąpienie OnConfiguring(DbContextOptionsBuilder) metody w kontekście pochodnym.
Jeśli w tym miejscu zostanie dostarczona akcja, metoda będzie nadal uruchamiana, OnConfiguring(DbContextOptionsBuilder) jeśli została zastąpiona w kontekście pochodnym. OnConfiguring(DbContextOptionsBuilder) konfiguracja zostanie zastosowana oprócz konfiguracji wykonanej tutaj.
Aby opcje, które mają zostać przekazane do kontekstu, należy uwidocznić konstruktor w kontekście, który przyjmuje DbContextOptions<TContext> i przekazuje go do podstawowego konstruktora .DbContext
- contextLifetime
- ServiceLifetime
Okres istnienia, za pomocą którego należy zarejestrować usługę DbContext w kontenerze.
- optionsLifetime
- ServiceLifetime
Okres istnienia, za pomocą którego należy zarejestrować usługę DbContextOptions w kontenerze.
Zwraca
Ta sama kolekcja usług, dzięki czemu można połączyć wiele wywołań.
Przykłady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString));
}
Uwagi
Użyj tej metody podczas korzystania z iniekcji zależności w aplikacji, na przykład w przypadku ASP.NET Core. W przypadku aplikacji, które nie używają iniekcji zależności, rozważ utworzenie DbContext wystąpień bezpośrednio z jego konstruktorem. Następnie OnConfiguring(DbContextOptionsBuilder) można zastąpić metodę w celu skonfigurowania parametrów połączenia i innych opcji.
Platforma Entity Framework Core nie obsługuje wielu równoległych operacji uruchamianych w tym samym wystąpieniu DbContext. Obejmuje to zarówno równoległe wykonywanie zapytań asynchronicznych, jak i wszelkie jawne współbieżne użycie z wielu wątków. W związku z tym zawsze czekaj na wywołania asynchroniczne natychmiast lub używaj oddzielnych wystąpień dbContext dla operacji wykonywanych równolegle. Aby uzyskać więcej informacji i przykładów, zobacz Unikanie problemów z wątkami dbContext .
Aby uzyskać więcej informacji i przykładów, zobacz Using DbContext with dependency injection (Używanie elementu DbContext z iniekcją zależności ).
Dotyczy
AddDbContext<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)
Rejestruje dany kontekst jako usługę w pliku 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 kontekstu do zarejestrowania.
Parametry
- serviceCollection
- IServiceCollection
Element do dodawania IServiceCollection usług.
- optionsAction
- Action<IServiceProvider,DbContextOptionsBuilder>
Opcjonalna akcja umożliwiająca skonfigurowanie DbContextOptions elementu dla kontekstu. Stanowi to alternatywę dla wykonywania konfiguracji kontekstu przez zastąpienie OnConfiguring(DbContextOptionsBuilder) metody w kontekście pochodnym.
Jeśli w tym miejscu podano akcję, metoda będzie nadal uruchamiana, OnConfiguring(DbContextOptionsBuilder) jeśli została zastąpiona w kontekście pochodnym. OnConfiguring(DbContextOptionsBuilder) konfiguracja zostanie zastosowana oprócz konfiguracji wykonanej tutaj.
Aby opcje, które mają zostać przekazane do kontekstu, należy uwidocznić konstruktora w kontekście, który przyjmuje DbContextOptions<TContext> i przekazuje go do podstawowego konstruktora DbContext.
- contextLifetime
- ServiceLifetime
Okres istnienia, za pomocą którego należy zarejestrować usługę DbContext w kontenerze.
- optionsLifetime
- ServiceLifetime
Okres istnienia, za pomocą którego należy zarejestrować usługę DbContextOptions w kontenerze.
Zwraca
Ta sama kolekcja usług, dzięki czemu można połączyć wiele wywołań.
Przykłady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services
.AddEntityFrameworkSqlServer()
.AddDbContext<MyContext>((serviceProvider, options) =>
options.UseSqlServer(connectionString)
.UseInternalServiceProvider(serviceProvider));
}
Uwagi
Użyj tej metody podczas korzystania z iniekcji zależności w aplikacji, na przykład z ASP.NET Core. W przypadku aplikacji, które nie używają wstrzykiwania zależności, rozważ utworzenie DbContext wystąpień bezpośrednio z konstruktorem. OnConfiguring(DbContextOptionsBuilder) Następnie można zastąpić metodę w celu skonfigurowania parametrów połączenia i innych opcji.
Platforma Entity Framework Core nie obsługuje wielu równoległych operacji uruchamianych w tym samym wystąpieniu DbContext. Obejmuje to zarówno równoległe wykonywanie zapytań asynchronicznych, jak i wszelkie jawne współbieżne użycie z wielu wątków. Dlatego zawsze czekaj na wywołania asynchroniczne natychmiast lub używaj oddzielnych wystąpień dbContext dla operacji wykonywanych równolegle. Aby uzyskać więcej informacji i przykłady, zobacz Unikanie problemów z wątkami dbContext .
Platforma Entity Framework Core nie obsługuje wielu równoległych operacji uruchamianych w tym samym wystąpieniu DbContext. Obejmuje to zarówno równoległe wykonywanie zapytań asynchronicznych, jak i wszelkie jawne współbieżne użycie z wielu wątków. Dlatego zawsze czekaj na wywołania asynchroniczne natychmiast lub używaj oddzielnych wystąpień dbContext dla operacji wykonywanych równolegle. Aby uzyskać więcej informacji i przykłady, zobacz Unikanie problemów z wątkami dbContext .
Aby uzyskać więcej informacji i przykłady, zobacz Using DbContext with dependency injection (Używanie elementu DbContext z iniekcją zależności ).
To przeciążenie ma element optionsAction
, który udostępnia aplikację IServiceProvider. Jest to przydatne, jeśli chcesz skonfigurować program Entity Framework Core w celu rozpoznawania jego usług wewnętrznych od podstawowego dostawcy usług aplikacji. Domyślnie zalecamy używanie programu AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) Entity Framework, które umożliwia tworzenie i konserwację własnych IServiceProvider usług programu Entity Framework.
Dotyczy
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, ServiceLifetime, ServiceLifetime)
Rejestruje dany kontekst jako usługę w pliku 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
Klasa lub interfejs, który będzie używany do rozpoznawania kontekstu z kontenera.
- TContextImplementation
Konkretny typ implementacji do utworzenia.
Parametry
- serviceCollection
- IServiceCollection
Element do dodawania IServiceCollection usług.
- contextLifetime
- ServiceLifetime
Okres istnienia, za pomocą którego należy zarejestrować usługę DbContext w kontenerze.
- optionsLifetime
- ServiceLifetime
Okres istnienia, za pomocą którego należy zarejestrować usługę DbContextOptions w kontenerze.
Zwraca
Ta sama kolekcja usług, dzięki czemu można połączyć wiele wywołań.
Przykłady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(ServiceLifetime.Scoped);
}
Uwagi
Użyj tej metody podczas korzystania z iniekcji zależności w aplikacji, na przykład z ASP.NET Core. W przypadku aplikacji, które nie używają wstrzykiwania zależności, rozważ utworzenie DbContext wystąpień bezpośrednio z konstruktorem. OnConfiguring(DbContextOptionsBuilder) Następnie można zastąpić metodę w celu skonfigurowania parametrów połączenia i innych opcji.
Platforma Entity Framework Core nie obsługuje wielu równoległych operacji uruchamianych w tym samym wystąpieniu DbContext. Obejmuje to zarówno równoległe wykonywanie zapytań asynchronicznych, jak i wszelkie jawne współbieżne użycie z wielu wątków. Dlatego zawsze czekaj na wywołania asynchroniczne natychmiast lub używaj oddzielnych wystąpień dbContext dla operacji wykonywanych równolegle. Aby uzyskać więcej informacji i przykłady, zobacz Unikanie problemów z wątkami dbContext .
Aby uzyskać więcej informacji i przykłady, zobacz Using DbContext with dependency injection (Używanie elementu DbContext z iniekcją zależności ).
Dotyczy
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)
Rejestruje dany kontekst jako usługę w pliku 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
Klasa lub interfejs, który będzie używany do rozpoznawania kontekstu z kontenera.
- TContextImplementation
Konkretny typ implementacji do utworzenia.
Parametry
- serviceCollection
- IServiceCollection
Element do dodawania IServiceCollection usług.
- optionsAction
- Action<DbContextOptionsBuilder>
Opcjonalna akcja umożliwiająca skonfigurowanie DbContextOptions elementu dla kontekstu. Stanowi to alternatywę dla wykonywania konfiguracji kontekstu przez zastąpienie OnConfiguring(DbContextOptionsBuilder) metody w kontekście pochodnym.
Jeśli w tym miejscu podano akcję, metoda będzie nadal uruchamiana, OnConfiguring(DbContextOptionsBuilder) jeśli została zastąpiona w kontekście pochodnym. OnConfiguring(DbContextOptionsBuilder) konfiguracja zostanie zastosowana oprócz konfiguracji wykonanej tutaj.
Aby opcje, które mają zostać przekazane do kontekstu, należy uwidocznić konstruktora w kontekście, który przyjmuje DbContextOptions<TContext> i przekazuje go do podstawowego konstruktora DbContext.
- contextLifetime
- ServiceLifetime
Okres istnienia, za pomocą którego należy zarejestrować usługę DbContext w kontenerze.
- optionsLifetime
- ServiceLifetime
Okres istnienia, za pomocą którego należy zarejestrować usługę DbContextOptions w kontenerze.
Zwraca
Ta sama kolekcja usług, dzięki czemu można połączyć wiele wywołań.
Przykłady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString));
}
Uwagi
Użyj tej metody podczas korzystania z iniekcji zależności w aplikacji, na przykład z ASP.NET Core. W przypadku aplikacji, które nie używają wstrzykiwania zależności, rozważ utworzenie DbContext wystąpień bezpośrednio z konstruktorem. OnConfiguring(DbContextOptionsBuilder) Następnie można zastąpić metodę w celu skonfigurowania parametrów połączenia i innych opcji.
Platforma Entity Framework Core nie obsługuje wielu równoległych operacji uruchamianych w tym samym wystąpieniu DbContext. Obejmuje to zarówno równoległe wykonywanie zapytań asynchronicznych, jak i wszelkie jawne współbieżne użycie z wielu wątków. Dlatego zawsze czekaj na wywołania asynchroniczne natychmiast lub używaj oddzielnych wystąpień dbContext dla operacji wykonywanych równolegle. Aby uzyskać więcej informacji i przykłady, zobacz Unikanie problemów z wątkami dbContext .
Aby uzyskać więcej informacji i przykłady, zobacz Using DbContext with dependency injection (Używanie elementu DbContext z iniekcją zależności ).
Dotyczy
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)
Rejestruje dany kontekst jako usługę w pliku 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
Klasa lub interfejs, który będzie używany do rozpoznawania kontekstu z kontenera.
- TContextImplementation
Konkretny typ implementacji do utworzenia.
Parametry
- serviceCollection
- IServiceCollection
Element do dodawania IServiceCollection usług.
- optionsAction
- Action<IServiceProvider,DbContextOptionsBuilder>
Opcjonalna akcja umożliwiająca skonfigurowanie DbContextOptions elementu dla kontekstu. Stanowi to alternatywę dla wykonywania konfiguracji kontekstu przez zastąpienie OnConfiguring(DbContextOptionsBuilder) metody w kontekście pochodnym.
Jeśli w tym miejscu podano akcję, metoda będzie nadal uruchamiana, OnConfiguring(DbContextOptionsBuilder) jeśli została zastąpiona w kontekście pochodnym. OnConfiguring(DbContextOptionsBuilder) konfiguracja zostanie zastosowana oprócz konfiguracji wykonanej tutaj.
Aby opcje, które mają zostać przekazane do kontekstu, należy uwidocznić konstruktora w kontekście, który przyjmuje DbContextOptions<TContext> i przekazuje go do podstawowego konstruktora DbContext.
- contextLifetime
- ServiceLifetime
Okres istnienia, za pomocą którego należy zarejestrować usługę DbContext w kontenerze.
- optionsLifetime
- ServiceLifetime
Okres istnienia, za pomocą którego należy zarejestrować usługę DbContextOptions w kontenerze.
Zwraca
Ta sama kolekcja usług, dzięki czemu można połączyć wiele wywołań.
Przykłady
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services
.AddEntityFrameworkSqlServer()
.AddDbContext<MyContext>((serviceProvider, options) =>
options.UseSqlServer(connectionString)
.UseInternalServiceProvider(serviceProvider));
}
Uwagi
Użyj tej metody podczas korzystania z iniekcji zależności w aplikacji, na przykład z ASP.NET Core. W przypadku aplikacji, które nie używają wstrzykiwania zależności, rozważ utworzenie DbContext wystąpień bezpośrednio z konstruktorem. OnConfiguring(DbContextOptionsBuilder) Następnie można zastąpić metodę w celu skonfigurowania parametrów połączenia i innych opcji.
Platforma Entity Framework Core nie obsługuje wielu równoległych operacji uruchamianych w tym samym wystąpieniu DbContext. Obejmuje to zarówno równoległe wykonywanie zapytań asynchronicznych, jak i wszelkie jawne współbieżne użycie z wielu wątków. Dlatego zawsze czekaj na wywołania asynchroniczne natychmiast lub używaj oddzielnych wystąpień dbContext dla operacji wykonywanych równolegle. Aby uzyskać więcej informacji i przykłady, zobacz Unikanie problemów z wątkami dbContext .
Aby uzyskać więcej informacji i przykłady, zobacz Using DbContext with dependency injection (Używanie elementu DbContext z iniekcją zależności ).
To przeciążenie ma element optionsAction
, który udostępnia aplikację IServiceProvider. Jest to przydatne, jeśli chcesz skonfigurować program Entity Framework Core w celu rozpoznawania jego usług wewnętrznych od podstawowego dostawcy usług aplikacji. Domyślnie zalecamy używanie programu AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) Entity Framework, które umożliwia tworzenie i konserwację własnych IServiceProvider usług programu Entity Framework.