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 .
Применяется к
Entity Framework
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по