EntityFrameworkServiceCollectionExtensions.AddPooledDbContextFactory Метод

Определение

Перегрузки

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

IDbContextFactory<TContext> Регистрирует в IServiceCollection для создания экземпляров заданного DbContext типа, в которых экземпляры объединяются в пул для повторного использования.

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

IDbContextFactory<TContext> Регистрирует в IServiceCollection для создания экземпляров заданного DbContext типа, в которых экземпляры объединяются в пул для повторного использования.

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

Исходный код:
EntityFrameworkServiceCollectionExtensions.cs
Исходный код:
EntityFrameworkServiceCollectionExtensions.cs
Исходный код:
EntityFrameworkServiceCollectionExtensions.cs
Исходный код:
EntityFrameworkServiceCollectionExtensions.cs
Исходный код:
EntityFrameworkServiceCollectionExtensions.cs

IDbContextFactory<TContext> Регистрирует в IServiceCollection для создания экземпляров заданного DbContext типа, в которых экземпляры объединяются в пул для повторного использования.

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

Параметры типа

TContext

Тип , создаваемый DbContext фабрикой.

Параметры

serviceCollection
IServiceCollection

Коллекция IServiceCollection, в которую добавляются службы.

optionsAction
Action<DbContextOptionsBuilder>

Обязательное действие для настройки DbContextOptions для контекста. При использовании пула контекста настройка параметров должна выполняться извне; OnConfiguring(DbContextOptionsBuilder) не будет вызываться.

poolSize
Int32

Задает максимальное количество экземпляров, сохраненных пулом. По умолчанию — 1024.

Возвращаемое значение

Та же коллекция служб, что позволяет объединить несколько вызовов в цепочку.

Комментарии

Регистрация фабрики вместо непосредственной регистрации типа контекста позволяет легко создавать новые DbContext экземпляры. Регистрация фабрики рекомендуется для приложений Blazor и других ситуаций, когда область внедрения зависимостей не соответствует времени существования контекста.

Используйте этот метод при использовании внедрения зависимостей в приложении, например в Blazor. Для приложений, которые не используют внедрение зависимостей, рассмотрите возможность создания DbContext экземпляров непосредственно с помощью конструктора. Затем OnConfiguring(DbContextOptionsBuilder) метод можно переопределить для настройки строки подключения и других параметров.

Entity Framework Core не поддерживает выполнение нескольких параллельных операций в одном экземпляре DbContext, включая параллельное выполнение асинхронных запросов и любое явное использование экземпляра из нескольких потоков одновременно. Поэтому всегда ожидайте асинхронные вызовы немедленно или используйте отдельные экземпляры DbContext для операций, которые выполняются параллельно. Дополнительные сведения и примеры см. в разделе Предотвращение проблем с потоком DbContext .

Дополнительные сведения и примеры см. в разделах Использование DbContext с внедрением зависимостей, Использование фабрик DbContext и Использование пулов DbContext .

Применяется к

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

Исходный код:
EntityFrameworkServiceCollectionExtensions.cs
Исходный код:
EntityFrameworkServiceCollectionExtensions.cs
Исходный код:
EntityFrameworkServiceCollectionExtensions.cs
Исходный код:
EntityFrameworkServiceCollectionExtensions.cs
Исходный код:
EntityFrameworkServiceCollectionExtensions.cs

IDbContextFactory<TContext> Регистрирует в IServiceCollection для создания экземпляров заданного DbContext типа, в которых экземпляры объединяются в пул для повторного использования.

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

Параметры типа

TContext

Тип , создаваемый DbContext фабрикой.

Параметры

serviceCollection
IServiceCollection

Коллекция IServiceCollection, в которую добавляются службы.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Обязательное действие для настройки DbContextOptions для контекста. При использовании пула контекста настройка параметров должна выполняться извне; OnConfiguring(DbContextOptionsBuilder) не будет вызываться.

poolSize
Int32

Задает максимальное количество экземпляров, сохраненных пулом. По умолчанию — 1024.

Возвращаемое значение

Та же коллекция служб, что позволяет объединить несколько вызовов в цепочку.

Комментарии

Регистрация фабрики вместо непосредственной регистрации типа контекста позволяет легко создавать новые DbContext экземпляры. Регистрация фабрики рекомендуется для приложений Blazor и других ситуаций, когда область внедрения зависимостей не соответствует времени существования контекста.

Используйте этот метод при использовании внедрения зависимостей в приложении, например в Blazor. Для приложений, которые не используют внедрение зависимостей, рассмотрите возможность создания DbContext экземпляров непосредственно с помощью конструктора. Затем OnConfiguring(DbContextOptionsBuilder) метод можно переопределить для настройки строки подключения и других параметров.

Entity Framework Core не поддерживает выполнение нескольких параллельных операций в одном экземпляре DbContext, включая параллельное выполнение асинхронных запросов и любое явное использование экземпляра из нескольких потоков одновременно. Поэтому всегда ожидайте асинхронные вызовы немедленно или используйте отдельные экземпляры DbContext для операций, которые выполняются параллельно. Дополнительные сведения и примеры см. в разделе Предотвращение проблем с потоком DbContext .

Дополнительные сведения и примеры см. в разделах Использование DbContext с внедрением зависимостей, Использование фабрик DbContext и Использование пулов DbContext .

Применяется к