EntityFrameworkServiceCollectionExtensions.AddDbContextFactory Метод

Определение

Перегрузки

AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)

IDbContextFactory<TContext> Регистрирует в для IServiceCollection создания экземпляров заданного DbContext типа.

AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)

IDbContextFactory<TContext> Регистрирует в для IServiceCollection создания экземпляров заданного DbContext типа.

AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)

IDbContextFactory<TContext> Регистрирует в для IServiceCollection создания экземпляров заданного DbContext типа.

AddDbContextFactory<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)

IDbContextFactory<TContext> Регистрирует в для IServiceCollection создания экземпляров заданного DbContext типа.

AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)

IDbContextFactory<TContext> Регистрирует в для IServiceCollection создания экземпляров заданного DbContext типа.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext,TFactory> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext where TFactory : Microsoft.EntityFrameworkCore.IDbContextFactory<TContext>;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext,TFactory> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext where TFactory : Microsoft.EntityFrameworkCore.IDbContextFactory<TContext>;
static member AddDbContextFactory : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext and 'Factory :> Microsoft.EntityFrameworkCore.IDbContextFactory<'Context>)
<Extension()>
Public Function AddDbContextFactory(Of TContext As DbContext, TFactory As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) As IServiceCollection

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

TContext

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

TFactory

Тип регистрируемого IDbContextFactory<TContext> объекта.

Параметры

serviceCollection
IServiceCollection

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

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Необязательное действие для настройки DbContextOptions для контекста. Это является альтернативой настройке контекста путем переопределения OnConfiguring(DbContextOptionsBuilder) метода в производном контексте.

Если здесь указано действие, метод будет по-прежнему OnConfiguring(DbContextOptionsBuilder) выполняться, если он был переопределен в производном контексте. OnConfiguring(DbContextOptionsBuilder) конфигурация будет применяться в дополнение к конфигурации, выполняемой здесь.

Чтобы параметры были переданы в контекст, необходимо предоставить в контексте конструктор, который принимает DbContextOptions<TContext> и передает его в базовый конструктор .DbContext

lifetime
ServiceLifetime

Время существования для регистрации фабрики и параметров. Значение по умолчанию — Singleton.

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

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

Комментарии

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

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

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

Эта перегрузка IDbContextFactory<TContext> позволяет зарегистрировать определенную реализацию вместо использования фабрики по умолчанию, поставляемой с EF Core.

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

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

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

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

AddDbContextFactory<TContext,TFactory>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)

IDbContextFactory<TContext> Регистрирует в для IServiceCollection создания экземпляров заданного DbContext типа.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext,TFactory> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext where TFactory : Microsoft.EntityFrameworkCore.IDbContextFactory<TContext>;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext,TFactory> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext where TFactory : Microsoft.EntityFrameworkCore.IDbContextFactory<TContext>;
static member AddDbContextFactory : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext and 'Factory :> Microsoft.EntityFrameworkCore.IDbContextFactory<'Context>)
<Extension()>
Public Function AddDbContextFactory(Of TContext As DbContext, TFactory As DbContext) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) As IServiceCollection

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

TContext

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

TFactory

Тип регистрируемого IDbContextFactory<TContext> объекта.

Параметры

serviceCollection
IServiceCollection

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

optionsAction
Action<DbContextOptionsBuilder>

Необязательное действие для настройки DbContextOptions для контекста. Это является альтернативой настройке контекста путем переопределения OnConfiguring(DbContextOptionsBuilder) метода в производном контексте.

Если здесь указано действие, метод будет по-прежнему OnConfiguring(DbContextOptionsBuilder) выполняться, если он был переопределен в производном контексте. OnConfiguring(DbContextOptionsBuilder) конфигурация будет применяться в дополнение к конфигурации, выполняемой здесь.

Чтобы параметры были переданы в контекст, необходимо предоставить в контексте конструктор, который принимает DbContextOptions<TContext> и передает его в базовый конструктор .DbContext

lifetime
ServiceLifetime

Время существования для регистрации фабрики и параметров. Значение по умолчанию — Singleton.

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

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

Комментарии

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

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

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

Эта перегрузка IDbContextFactory<TContext> позволяет зарегистрировать определенную реализацию вместо использования фабрики по умолчанию, поставляемой с EF Core.

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

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

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

AddDbContextFactory<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)

IDbContextFactory<TContext> Регистрирует в для IServiceCollection создания экземпляров заданного DbContext типа.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextFactory : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextFactory(Of TContext As DbContext) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) As IServiceCollection

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

TContext

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

Параметры

serviceCollection
IServiceCollection

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

optionsAction
Action<DbContextOptionsBuilder>

Необязательное действие для настройки DbContextOptions для контекста. Это является альтернативой настройке контекста путем переопределения OnConfiguring(DbContextOptionsBuilder) метода в производном контексте.

Если здесь указано действие, метод будет по-прежнему OnConfiguring(DbContextOptionsBuilder) выполняться, если он был переопределен в производном контексте. OnConfiguring(DbContextOptionsBuilder) конфигурация будет применяться в дополнение к конфигурации, выполняемой здесь.

Чтобы параметры были переданы в контекст, необходимо предоставить в контексте конструктор, который принимает DbContextOptions<TContext> и передает его в базовый конструктор .DbContext

lifetime
ServiceLifetime

Время существования для регистрации фабрики и параметров. Значение по умолчанию — Singleton.

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

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

Комментарии

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

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

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

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

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

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

AddDbContextFactory<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)

IDbContextFactory<TContext> Регистрирует в для IServiceCollection создания экземпляров заданного DbContext типа.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextFactory<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextFactory : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextFactory(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Singleton) As IServiceCollection

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

TContext

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

Параметры

serviceCollection
IServiceCollection

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

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Необязательное действие для настройки DbContextOptions для контекста. Это является альтернативой настройке контекста путем переопределения OnConfiguring(DbContextOptionsBuilder) метода в производном контексте.

Если здесь указано действие, метод будет по-прежнему OnConfiguring(DbContextOptionsBuilder) выполняться, если он был переопределен в производном контексте. OnConfiguring(DbContextOptionsBuilder) конфигурация будет применяться в дополнение к конфигурации, выполняемой здесь.

Чтобы параметры были переданы в контекст, необходимо предоставить в контексте конструктор, который принимает DbContextOptions<TContext> и передает его в базовый конструктор .DbContext

lifetime
ServiceLifetime

Время существования для регистрации фабрики и параметров. Значение по умолчанию — Singleton.

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

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

Комментарии

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

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

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

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

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

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

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