EntityFrameworkServiceCollectionExtensions.AddDbContextPool Метод

Определение

Перегрузки

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

Регистрирует данный DbContext объект в качестве службы в IServiceCollectionи включает пул DbContext для этой регистрации.

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

Регистрирует данный DbContext объект в качестве службы в IServiceCollectionи включает пул DbContext для этой регистрации.

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

Регистрирует данный DbContext объект в качестве службы в IServiceCollectionи включает пул DbContext для этой регистрации.

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

Регистрирует данный DbContext объект в качестве службы в IServiceCollectionи включает пул DbContext для этой регистрации.

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

Регистрирует данный DbContext объект в качестве службы в IServiceCollectionи включает пул DbContext для этой регистрации.

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

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

TContext

Тип регистраемого контекста.

Параметры

serviceCollection
IServiceCollection

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

optionsAction
Action<DbContextOptionsBuilder>

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

poolSize
Int32

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

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

Одну и ту же коллекцию служб, чтобы можно было объединить несколько вызовов в цепочку.

Комментарии

Использование пулов DbContext может повысить производительность в сценариях с высокой пропускной способностью за счет повторного использования экземпляров контекста. Однако для большинства приложений этот прирост производительности очень мал. Обратите внимание, что при использовании пула конфигурация контекста не может изменяться между использованием, и службы с заданной областью, внедренные в контекст, будут разрешаться только один раз из начального область. Использовать пулы DbContext следует только в том случае, если тестирование производительности показывает, что это обеспечивает реальный импульс.

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

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

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

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

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

Регистрирует данный DbContext объект в качестве службы в IServiceCollectionи включает пул DbContext для этой регистрации.

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

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

TContext

Тип регистраемого контекста.

Параметры

serviceCollection
IServiceCollection

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

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

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

poolSize
Int32

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

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

Одну и ту же коллекцию служб, чтобы можно было объединить несколько вызовов в цепочку.

Комментарии

Использование пулов DbContext может повысить производительность в сценариях с высокой пропускной способностью за счет повторного использования экземпляров контекста. Однако для большинства приложений этот прирост производительности очень мал. Обратите внимание, что при использовании пула конфигурация контекста не может изменяться между использованием, и службы с заданной областью, внедренные в контекст, будут разрешаться только один раз из начального область. Использовать пулы DbContext следует только в том случае, если тестирование производительности показывает, что это обеспечивает реальный импульс.

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

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

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

Эта перегрузка имеет объект optionsAction , предоставляющий приложение IServiceProvider. Это полезно, если вы хотите настроить Entity Framework Core для разрешения внутренних служб из основного поставщика служб приложений. По умолчанию рекомендуется использовать AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) , которое позволяет Entity Framework создавать и поддерживать собственные IServiceProvider для внутренних служб Entity Framework.

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

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

Регистрирует данный DbContext объект в качестве службы в IServiceCollectionи включает пул DbContext для этой регистрации.

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

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

TContextService

Класс или интерфейс, которые будут использоваться для разрешения контекста из контейнера.

TContextImplementation

Конкретный тип реализации для создания.

Параметры

serviceCollection
IServiceCollection

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

optionsAction
Action<DbContextOptionsBuilder>

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

poolSize
Int32

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

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

Одну и ту же коллекцию служб, чтобы можно было объединить несколько вызовов в цепочку.

Комментарии

Использование пулов DbContext может повысить производительность в сценариях с высокой пропускной способностью за счет повторного использования экземпляров контекста. Однако для большинства приложений этот прирост производительности очень мал. Обратите внимание, что при использовании пула конфигурация контекста не может изменяться между использованием, и службы с заданной областью, внедренные в контекст, будут разрешаться только один раз из начального область. Использовать пулы DbContext следует только в том случае, если тестирование производительности показывает, что это обеспечивает реальный импульс.

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

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

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

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

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

Регистрирует данный DbContext объект в качестве службы в IServiceCollectionи включает пул DbContext для этой регистрации.

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

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

TContextService

Класс или интерфейс, которые будут использоваться для разрешения контекста из контейнера.

TContextImplementation

Конкретный тип реализации для создания.

Параметры

serviceCollection
IServiceCollection

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

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

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

poolSize
Int32

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

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

Одну и ту же коллекцию служб, чтобы можно было объединить несколько вызовов в цепочку.

Комментарии

Использование пулов DbContext может повысить производительность в сценариях с высокой пропускной способностью за счет повторного использования экземпляров контекста. Однако для большинства приложений этот прирост производительности очень мал. Обратите внимание, что при использовании пула конфигурация контекста не может изменяться между использованием, и службы с заданной областью, внедренные в контекст, будут разрешаться только один раз из начального область. Использовать пулы DbContext следует только в том случае, если тестирование производительности показывает, что это обеспечивает реальный импульс.

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

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

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

Эта перегрузка имеет объект optionsAction , предоставляющий приложение IServiceProvider. Это полезно, если вы хотите настроить Entity Framework Core для разрешения внутренних служб из основного поставщика служб приложений. По умолчанию рекомендуется использовать AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) , которое позволяет Entity Framework создавать и поддерживать собственные IServiceProvider для внутренних служб Entity Framework.

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