Udostępnij za pośrednictwem


EntityFrameworkServiceCollectionExtensions.AddDbContext Metoda

Definicja

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 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.

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.

Dotyczy