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