Udostępnij przez


EntityFrameworkServiceCollectionExtensions.AddPooledDbContextFactory Metoda

Definicja

Przeciążenia

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

Rejestruje element IDbContextFactory<TContext> w obiekcie , IServiceCollection aby utworzyć wystąpienia danego DbContext typu, w którym wystąpienia są w puli do ponownego użycia.

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

Rejestruje element IDbContextFactory<TContext> w obiekcie , IServiceCollection aby utworzyć wystąpienia danego DbContext typu, w którym wystąpienia są w puli do ponownego użycia.

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

Źródło:
EntityFrameworkServiceCollectionExtensions.cs
Źródło:
EntityFrameworkServiceCollectionExtensions.cs
Źródło:
EntityFrameworkServiceCollectionExtensions.cs
Źródło:
EntityFrameworkServiceCollectionExtensions.cs
Źródło:
EntityFrameworkServiceCollectionExtensions.cs

Rejestruje element IDbContextFactory<TContext> w obiekcie , IServiceCollection aby utworzyć wystąpienia danego DbContext typu, w którym wystąpienia są w puli do ponownego użycia.

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

Parametry typu

TContext

Typ DbContext , który ma zostać utworzony przez fabrykę.

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

Zarejestrowanie fabryki zamiast rejestrowania typu kontekstu bezpośrednio umożliwia łatwe tworzenie nowych DbContext wystąpień. Rejestrowanie fabryki jest zalecane w przypadku aplikacji Blazor i innych sytuacji, w których zakres wstrzykiwania zależności nie jest zgodny z okresem istnienia kontekstu.

Użyj tej metody podczas korzystania z iniekcji zależności w aplikacji, na przykład z platformą Blazor. 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 factory (Używanie metody DbContext factory,Using DbContext pooling with dependency injection), Using DbContext factory (Używanie fabryk dbContext) i Using DbContext pooling (Używanie puli dbContext).

Dotyczy

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

Źródło:
EntityFrameworkServiceCollectionExtensions.cs
Źródło:
EntityFrameworkServiceCollectionExtensions.cs
Źródło:
EntityFrameworkServiceCollectionExtensions.cs
Źródło:
EntityFrameworkServiceCollectionExtensions.cs
Źródło:
EntityFrameworkServiceCollectionExtensions.cs

Rejestruje element IDbContextFactory<TContext> w obiekcie , IServiceCollection aby utworzyć wystąpienia danego DbContext typu, w którym wystąpienia są w puli do ponownego użycia.

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

Parametry typu

TContext

Typ DbContext , który ma zostać utworzony przez fabrykę.

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

Zarejestrowanie fabryki zamiast rejestrowania typu kontekstu bezpośrednio umożliwia łatwe tworzenie nowych DbContext wystąpień. Rejestrowanie fabryki jest zalecane w przypadku aplikacji Blazor i innych sytuacji, w których zakres wstrzykiwania zależności nie jest zgodny z okresem istnienia kontekstu.

Użyj tej metody podczas korzystania z iniekcji zależności w aplikacji, na przykład z platformą Blazor. 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 factory (Używanie metody DbContext factory,Using DbContext pooling with dependency injection), Using DbContext factory (Używanie fabryk dbContext) i Using DbContext pooling (Używanie puli dbContext).

Dotyczy