Udostępnij za pośrednictwem


EntityFrameworkServiceCollectionExtensions.AddDbContextPool Metoda

Definicja

Przeciążenia

AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

Rejestruje daną DbContext usługę jako usługę w elemecie IServiceCollectioni włącza buforowanie dbContext dla tej rejestracji.

AddDbContextPool<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

Rejestruje daną DbContext usługę jako usługę w elemecie IServiceCollectioni włącza buforowanie dbContext dla tej rejestracji.

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

Rejestruje daną DbContext usługę jako usługę w elemecie IServiceCollectioni włącza buforowanie dbContext dla tej rejestracji.

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

Rejestruje daną DbContext usługę jako usługę w elemecie IServiceCollectioni włącza buforowanie dbContext dla tej rejestracji.

AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

Rejestruje daną DbContext usługę jako usługę w elemecie IServiceCollectioni włącza buforowanie dbContext dla tej rejestracji.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 1024) As IServiceCollection

Parametry typu

TContext

Typ kontekstu do zarejestrowania.

Parametry

serviceCollection
IServiceCollection

Element do dodawania IServiceCollection usług.

optionsAction
Action<DbContextOptionsBuilder>

Wymagana akcja do skonfigurowania DbContextOptions elementu dla kontekstu. W przypadku korzystania z buforowania kontekstów należy wykonać konfigurację opcji zewnętrznie; OnConfiguring(DbContextOptionsBuilder) nie zostanie wywołana.

poolSize
Int32

Ustawia maksymalną liczbę wystąpień przechowywanych przez pulę. Wartość domyślna to 1024.

Zwraca

Ta sama kolekcja usług, dzięki czemu można połączyć łańcuch wielu wywołań.

Uwagi

Buforowanie dbContext może zwiększyć wydajność w scenariuszach o wysokiej przepływności, ponownie używając wystąpień kontekstu. Jednak w przypadku większości aplikacji ten wzrost wydajności jest bardzo mały. Należy pamiętać, że w przypadku korzystania z puli konfiguracja kontekstu nie może zmienić się między użyciem, a usługi o określonym zakresie wprowadzone do kontekstu zostaną rozwiązane tylko raz z zakresu początkowego. Należy rozważyć użycie puli dbContext tylko wtedy, gdy testowanie wydajności wskazuje, że zapewnia prawdziwy impuls.

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 pooling (Używanie metody DbContext z iniekcją zależności ) i Using DbContext pooling (Używanie puli dbContext ).

Dotyczy

AddDbContextPool<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

Rejestruje daną DbContext usługę jako usługę w elemecie IServiceCollectioni włącza buforowanie dbContext dla tej rejestracji.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 1024) As IServiceCollection

Parametry typu

TContext

Typ kontekstu do zarejestrowania.

Parametry

serviceCollection
IServiceCollection

Element do dodawania IServiceCollection usług.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Wymagana akcja do skonfigurowania DbContextOptions elementu dla kontekstu. W przypadku korzystania z buforowania kontekstów należy wykonać konfigurację opcji zewnętrznie; OnConfiguring(DbContextOptionsBuilder) nie zostanie wywołana.

poolSize
Int32

Ustawia maksymalną liczbę wystąpień przechowywanych przez pulę. Wartość domyślna to 1024.

Zwraca

Ta sama kolekcja usług, dzięki czemu można połączyć łańcuch wielu wywołań.

Uwagi

Buforowanie dbContext może zwiększyć wydajność w scenariuszach o wysokiej przepływności, ponownie używając wystąpień kontekstu. Jednak w przypadku większości aplikacji ten wzrost wydajności jest bardzo mały. Należy pamiętać, że w przypadku korzystania z puli konfiguracja kontekstu nie może zmienić się między użyciem, a usługi o określonym zakresie wprowadzone do kontekstu zostaną rozwiązane tylko raz z zakresu początkowego. Należy rozważyć użycie puli dbContext tylko wtedy, gdy testowanie wydajności wskazuje, że zapewnia prawdziwy impuls.

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 pooling (Używanie metody DbContext z iniekcją zależności ) i Using DbContext pooling (Używanie puli dbContext ).

To przeciążenie ma element optionsAction zapewniający aplikację IServiceProvider. Jest to przydatne, jeśli chcesz skonfigurować platformę Entity Framework Core, aby rozwiązać problemy z jej usługami wewnętrznymi od podstawowego dostawcy usług aplikacji. Domyślnie zalecamy użycie AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) programu Entity Framework, które umożliwia tworzenie i konserwację własnego IServiceProvider programu Entity Framework dla wewnętrznych usług Entity Framework.

Dotyczy

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

Rejestruje daną DbContext usługę jako usługę w elemecie IServiceCollectioni włącza buforowanie dbContext dla tej rejestracji.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextService : null and 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 1024) 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>

Wymagana akcja do skonfigurowania DbContextOptions elementu dla kontekstu. W przypadku korzystania z buforowania kontekstów należy wykonać konfigurację opcji zewnętrznie; OnConfiguring(DbContextOptionsBuilder) nie zostanie wywołana.

poolSize
Int32

Ustawia maksymalną liczbę wystąpień przechowywanych przez pulę. Wartość domyślna to 1024.

Zwraca

Ta sama kolekcja usług, dzięki czemu można połączyć łańcuch wielu wywołań.

Uwagi

Buforowanie dbContext może zwiększyć wydajność w scenariuszach o wysokiej przepływności, ponownie używając wystąpień kontekstu. Jednak w przypadku większości aplikacji ten wzrost wydajności jest bardzo mały. Należy pamiętać, że w przypadku korzystania z puli konfiguracja kontekstu nie może zmienić się między użyciem, a usługi o określonym zakresie wprowadzone do kontekstu zostaną rozwiązane tylko raz z zakresu początkowego. Należy rozważyć użycie puli dbContext tylko wtedy, gdy testowanie wydajności wskazuje, że zapewnia prawdziwy impuls.

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 pooling (Używanie metody DbContext z iniekcją zależności ) i Using DbContext pooling (Używanie puli dbContext ).

Dotyczy

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

Rejestruje daną DbContext usługę jako usługę w elemecie IServiceCollectioni włącza buforowanie dbContext dla tej rejestracji.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextService : null and 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 1024) 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>

Wymagana akcja do skonfigurowania DbContextOptions elementu dla kontekstu. W przypadku korzystania z buforowania kontekstów należy wykonać konfigurację opcji zewnętrznie; OnConfiguring(DbContextOptionsBuilder) nie zostanie wywołana.

poolSize
Int32

Ustawia maksymalną liczbę wystąpień przechowywanych przez pulę. Wartość domyślna to 1024.

Zwraca

Ta sama kolekcja usług, dzięki czemu można połączyć łańcuch wielu wywołań.

Uwagi

Buforowanie dbContext może zwiększyć wydajność w scenariuszach o wysokiej przepływności, ponownie używając wystąpień kontekstu. Jednak w przypadku większości aplikacji ten wzrost wydajności jest bardzo mały. Należy pamiętać, że w przypadku korzystania z puli konfiguracja kontekstu nie może zmienić się między użyciem, a usługi o określonym zakresie wprowadzone do kontekstu zostaną rozwiązane tylko raz z zakresu początkowego. Należy rozważyć użycie puli dbContext tylko wtedy, gdy testowanie wydajności wskazuje, że zapewnia prawdziwy impuls.

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 pooling (Używanie metody DbContext z iniekcją zależności ) i Using DbContext pooling (Używanie puli dbContext ).

To przeciążenie ma element optionsAction zapewniający aplikację IServiceProvider. Jest to przydatne, jeśli chcesz skonfigurować platformę Entity Framework Core, aby rozwiązać problemy z jej usługami wewnętrznymi od podstawowego dostawcy usług aplikacji. Domyślnie zalecamy użycie AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) programu Entity Framework, które umożliwia tworzenie i konserwację własnego IServiceProvider programu Entity Framework dla wewnętrznych usług Entity Framework.

Dotyczy