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 .