EntityFrameworkServiceCollectionExtensions.AddDbContext Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
AddDbContext<TContext>(IServiceCollection, ServiceLifetime) |
Регистрирует заданный контекст в качестве службы в IServiceCollection. Этот метод используется при внедрении зависимостей в приложении, например при использовании ASP.NET. Дополнительные сведения о настройке внедрения зависимостей см. в разделе http://go.microsoft.com/fwlink/?LinkId=526890. |
AddDbContext<TContext>(IServiceCollection, ServiceLifetime, ServiceLifetime) |
Регистрирует заданный контекст в качестве службы в IServiceCollection. |
AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime) |
Регистрирует заданный контекст в качестве службы в IServiceCollection. Этот метод используется при внедрении зависимостей в приложении, например при использовании ASP.NET. Дополнительные сведения о настройке внедрения зависимостей см. в разделе http://go.microsoft.com/fwlink/?LinkId=526890. |
AddDbContext<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime) |
Регистрирует заданный контекст в качестве службы в IServiceCollection. Этот метод используется при внедрении зависимостей в приложении, например при использовании ASP.NET. Дополнительные сведения о настройке внедрения зависимостей см. в разделе http://go.microsoft.com/fwlink/?LinkId=526890.
Эта перегрузка имеет объект , предоставляющий |
AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) |
Регистрирует заданный контекст в качестве службы в IServiceCollection. |
AddDbContext<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) |
Регистрирует заданный контекст в качестве службы в IServiceCollection. |
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, ServiceLifetime, ServiceLifetime) |
Регистрирует заданный контекст в качестве службы в IServiceCollection. |
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) |
Регистрирует заданный контекст в качестве службы в IServiceCollection. |
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) |
Регистрирует заданный контекст в качестве службы в IServiceCollection. |
AddDbContext<TContext>(IServiceCollection, ServiceLifetime)
Регистрирует заданный контекст в качестве службы в IServiceCollection. Этот метод используется при внедрении зависимостей в приложении, например при использовании ASP.NET. Дополнительные сведения о настройке внедрения зависимостей см. в разделе http://go.microsoft.com/fwlink/?LinkId=526890.
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, contextLifetime As ServiceLifetime) As IServiceCollection
Параметры типа
- TContext
Тип регистраемого контекста.
Параметры
- serviceCollection
- IServiceCollection
Коллекция IServiceCollection, в которую добавляются службы.
- contextLifetime
- ServiceLifetime
Время существования для регистрации службы DbContext в контейнере.
Возвращаемое значение
Одну и ту же коллекцию служб, чтобы можно было объединить несколько вызовов в цепочку.
Примеры
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(ServiceLifetime.Scoped);
}
Применяется к
AddDbContext<TContext>(IServiceCollection, ServiceLifetime, ServiceLifetime)
Регистрирует заданный контекст в качестве службы в IServiceCollection.
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, contextLifetime As ServiceLifetime, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection
Параметры типа
- TContext
Тип регистраемого контекста.
Параметры
- serviceCollection
- IServiceCollection
Коллекция IServiceCollection, в которую добавляются службы.
- contextLifetime
- ServiceLifetime
Время существования для регистрации службы DbContext в контейнере.
- optionsLifetime
- ServiceLifetime
Время существования, с помощью которого необходимо зарегистрировать службу DbContextOptions в контейнере.
Возвращаемое значение
Одну и ту же коллекцию служб, чтобы можно было объединить несколько вызовов в цепочку.
Примеры
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(ServiceLifetime.Scoped);
}
Комментарии
Используйте этот метод при использовании внедрения зависимостей в приложении, например при использовании ASP.NET Core. Для приложений, которые не используют внедрение зависимостей, рассмотрите возможность создания DbContext экземпляров непосредственно с его конструктором. Затем OnConfiguring(DbContextOptionsBuilder) метод можно переопределить для настройки строки подключения и других параметров.
Entity Framework Core не поддерживает выполнение нескольких параллельных операций в одном экземпляре DbContext, включая параллельное выполнение асинхронных запросов и любое явное использование экземпляра из нескольких потоков одновременно. Поэтому всегда ожидайте асинхронные вызовы немедленно или используйте отдельные экземпляры DbContext для операций, которые выполняются параллельно. Дополнительные сведения и примеры см. в статье Предотвращение проблем с потоками DbContext .
Дополнительные сведения и примеры см. в статье Использование DbContext с внедрением зависимостей .
Применяется к
AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime)
Регистрирует заданный контекст в качестве службы в IServiceCollection. Этот метод используется при внедрении зависимостей в приложении, например при использовании ASP.NET. Дополнительные сведения о настройке внедрения зависимостей см. в разделе http://go.microsoft.com/fwlink/?LinkId=526890.
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection
Параметры типа
- TContext
Тип регистраемого контекста.
Параметры
- serviceCollection
- IServiceCollection
Коллекция IServiceCollection, в которую добавляются службы.
- optionsAction
- Action<DbContextOptionsBuilder>
Необязательное действие для настройки DbContextOptions для контекста. Это является альтернативой настройке контекста путем переопределения OnConfiguring(DbContextOptionsBuilder) метода в производном контексте.
Если здесь указано действие, метод по-прежнему OnConfiguring(DbContextOptionsBuilder) будет выполняться, если он был переопределен в производном контексте. OnConfiguring(DbContextOptionsBuilder) конфигурация будет применяться в дополнение к конфигурации, выполняемой здесь.
Чтобы параметры были переданы в контекст, необходимо предоставить в контексте конструктор, который принимает DbContextOptions<TContext> и передает его базовому конструктору DbContext.
- contextLifetime
- ServiceLifetime
Время существования для регистрации службы DbContext в контейнере.
Возвращаемое значение
Одну и ту же коллекцию служб, чтобы можно было объединить несколько вызовов в цепочку.
Примеры
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString));
}
Применяется к
AddDbContext<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime)
Регистрирует заданный контекст в качестве службы в IServiceCollection. Этот метод используется при внедрении зависимостей в приложении, например при использовании ASP.NET. Дополнительные сведения о настройке внедрения зависимостей см. в разделе http://go.microsoft.com/fwlink/?LinkId=526890.
Эта перегрузка имеет объект , предоставляющий optionsAction
приложения IServiceProvider.
Это полезно, если вы хотите настроить Entity Framework для разрешения внутренних служб из основного поставщика служб приложений.
По умолчанию рекомендуется использовать другую перегрузку, которая позволяет Entity Framework создавать и поддерживать собственные IServiceProvider для внутренних служб Entity Framework.
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : 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 AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection
Параметры типа
- TContext
Тип регистраемого контекста.
Параметры
- serviceCollection
- IServiceCollection
Коллекция IServiceCollection, в которую добавляются службы.
- optionsAction
- Action<IServiceProvider,DbContextOptionsBuilder>
Необязательное действие для настройки DbContextOptions для контекста. Это является альтернативой настройке контекста путем переопределения OnConfiguring(DbContextOptionsBuilder) метода в производном контексте.
Если здесь указано действие, метод по-прежнему OnConfiguring(DbContextOptionsBuilder) будет выполняться, если он был переопределен в производном контексте. OnConfiguring(DbContextOptionsBuilder) конфигурация будет применяться в дополнение к конфигурации, выполняемой здесь.
Чтобы параметры были переданы в контекст, необходимо предоставить в контексте конструктор, который принимает DbContextOptions<TContext> и передает его базовому конструктору DbContext.
- contextLifetime
- ServiceLifetime
Время существования для регистрации службы DbContext в контейнере.
Возвращаемое значение
Одну и ту же коллекцию служб, чтобы можно было объединить несколько вызовов в цепочку.
Примеры
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services
.AddEntityFrameworkSqlServer()
.AddDbContext<MyContext>((serviceProvider, options) =>
options.UseSqlServer(connectionString)
.UseInternalServiceProvider(serviceProvider));
}
Применяется к
AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)
Регистрирует заданный контекст в качестве службы в IServiceCollection.
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection
Параметры типа
- TContext
Тип регистраемого контекста.
Параметры
- serviceCollection
- IServiceCollection
Коллекция IServiceCollection, в которую добавляются службы.
- optionsAction
- Action<DbContextOptionsBuilder>
Необязательное действие для настройки DbContextOptions для контекста. Это является альтернативой настройке контекста путем переопределения OnConfiguring(DbContextOptionsBuilder) метода в производном контексте.
Если здесь указано действие, метод по-прежнему OnConfiguring(DbContextOptionsBuilder) будет выполняться, если он был переопределен в производном контексте. OnConfiguring(DbContextOptionsBuilder) конфигурация будет применяться в дополнение к конфигурации, выполняемой здесь.
Чтобы параметры были переданы в контекст, необходимо предоставить в контексте конструктор, который принимает DbContextOptions<TContext> и передает его базовому конструктору DbContext.
- contextLifetime
- ServiceLifetime
Время существования для регистрации службы DbContext в контейнере.
- optionsLifetime
- ServiceLifetime
Время существования, с помощью которого необходимо зарегистрировать службу DbContextOptions в контейнере.
Возвращаемое значение
Та же коллекция служб, что позволяет объединить несколько вызовов в цепочку.
Примеры
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString));
}
Комментарии
Используйте этот метод при использовании внедрения зависимостей в приложении, например при использовании ASP.NET Core. Для приложений, которые не используют внедрение зависимостей, рассмотрите возможность создания DbContext экземпляров непосредственно с его конструктором. Затем OnConfiguring(DbContextOptionsBuilder) метод можно переопределить для настройки строки подключения и других параметров.
Entity Framework Core не поддерживает выполнение нескольких параллельных операций в одном экземпляре DbContext, включая параллельное выполнение асинхронных запросов и любое явное использование экземпляра из нескольких потоков одновременно. Поэтому всегда ожидайте асинхронные вызовы немедленно или используйте отдельные экземпляры DbContext для операций, которые выполняются параллельно. Дополнительные сведения и примеры см. в статье Предотвращение проблем с потоками DbContext .
Дополнительные сведения и примеры см. в статье Использование DbContext с внедрением зависимостей .
Применяется к
AddDbContext<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)
Регистрирует заданный контекст в качестве службы в IServiceCollection.
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContext(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection
Параметры типа
- TContext
Тип регистраемого контекста.
Параметры
- serviceCollection
- IServiceCollection
Коллекция IServiceCollection, в которую добавляются службы.
- optionsAction
- Action<IServiceProvider,DbContextOptionsBuilder>
Необязательное действие для настройки DbContextOptions для контекста. Это является альтернативой настройке контекста путем переопределения OnConfiguring(DbContextOptionsBuilder) метода в производном контексте.
Если здесь указано действие, метод будет по-прежнему OnConfiguring(DbContextOptionsBuilder) выполняться, если он был переопределен в производном контексте. OnConfiguring(DbContextOptionsBuilder) конфигурация будет применяться в дополнение к конфигурации, выполняемой здесь.
Чтобы параметры были переданы в контекст, необходимо предоставить в контексте конструктор, который принимает DbContextOptions<TContext> и передает его в базовый конструктор .DbContext
- contextLifetime
- ServiceLifetime
Время существования для регистрации службы DbContext в контейнере.
- optionsLifetime
- ServiceLifetime
Время существования для регистрации службы DbContextOptions в контейнере.
Возвращаемое значение
Та же коллекция служб, что позволяет объединить несколько вызовов в цепочку.
Примеры
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services
.AddEntityFrameworkSqlServer()
.AddDbContext<MyContext>((serviceProvider, options) =>
options.UseSqlServer(connectionString)
.UseInternalServiceProvider(serviceProvider));
}
Комментарии
Используйте этот метод при внедрении зависимостей в приложении, например при использовании ASP.NET Core. Для приложений, которые не используют внедрение зависимостей, рассмотрите возможность создания DbContext экземпляров непосредственно с помощью конструктора. Затем OnConfiguring(DbContextOptionsBuilder) метод можно переопределить для настройки строки подключения и других параметров.
Entity Framework Core не поддерживает выполнение нескольких параллельных операций в одном экземпляре DbContext, включая параллельное выполнение асинхронных запросов и любое явное использование экземпляра из нескольких потоков одновременно. Поэтому всегда ожидайте асинхронные вызовы немедленно или используйте отдельные экземпляры DbContext для операций, которые выполняются параллельно. Дополнительные сведения и примеры см. в разделе Предотвращение проблем с потоком DbContext .
Entity Framework Core не поддерживает выполнение нескольких параллельных операций в одном экземпляре DbContext, включая параллельное выполнение асинхронных запросов и любое явное использование экземпляра из нескольких потоков одновременно. Поэтому всегда ожидайте асинхронные вызовы немедленно или используйте отдельные экземпляры DbContext для операций, которые выполняются параллельно. Дополнительные сведения и примеры см. в разделе Предотвращение проблем с потоком DbContext .
Дополнительные сведения и примеры см. в статье Использование DbContext с внедрением зависимостей .
Эта перегрузка имеет объект , предоставляющий optionsAction
приложению IServiceProvider. Это полезно, если вы хотите настроить Entity Framework Core для разрешения внутренних служб из основного поставщика службы приложений. По умолчанию рекомендуется использовать AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) , который позволяет Entity Framework создавать и обслуживать собственные IServiceProvider для внутренних служб Entity Framework.
Применяется к
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, ServiceLifetime, ServiceLifetime)
Регистрирует заданный контекст в качестве службы в IServiceCollection.
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextService : null and 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContext(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, contextLifetime As ServiceLifetime, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection
Параметры типа
- TContextService
Класс или интерфейс, который будет использоваться для разрешения контекста из контейнера.
- TContextImplementation
Конкретный тип реализации для создания.
Параметры
- serviceCollection
- IServiceCollection
Коллекция IServiceCollection, в которую добавляются службы.
- contextLifetime
- ServiceLifetime
Время существования для регистрации службы DbContext в контейнере.
- optionsLifetime
- ServiceLifetime
Время существования для регистрации службы DbContextOptions в контейнере.
Возвращаемое значение
Та же коллекция служб, что позволяет объединить несколько вызовов в цепочку.
Примеры
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(ServiceLifetime.Scoped);
}
Комментарии
Используйте этот метод при внедрении зависимостей в приложении, например при использовании ASP.NET Core. Для приложений, которые не используют внедрение зависимостей, рассмотрите возможность создания DbContext экземпляров непосредственно с помощью конструктора. Затем OnConfiguring(DbContextOptionsBuilder) метод можно переопределить для настройки строки подключения и других параметров.
Entity Framework Core не поддерживает выполнение нескольких параллельных операций в одном экземпляре DbContext, включая параллельное выполнение асинхронных запросов и любое явное использование экземпляра из нескольких потоков одновременно. Поэтому всегда ожидайте асинхронные вызовы немедленно или используйте отдельные экземпляры DbContext для операций, которые выполняются параллельно. Дополнительные сведения и примеры см. в разделе Предотвращение проблем с потоком DbContext .
Дополнительные сведения и примеры см. в статье Использование DbContext с внедрением зависимостей .
Применяется к
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)
Регистрирует заданный контекст в качестве службы в IServiceCollection.
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction = default, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContext(Of TContextService, TContextImplementation) (serviceCollection As IServiceCollection, Optional optionsAction As Action(Of DbContextOptionsBuilder) = Nothing, Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection
Параметры типа
- TContextService
Класс или интерфейс, который будет использоваться для разрешения контекста из контейнера.
- TContextImplementation
Конкретный тип реализации для создания.
Параметры
- serviceCollection
- IServiceCollection
Коллекция IServiceCollection, в которую добавляются службы.
- optionsAction
- Action<DbContextOptionsBuilder>
Необязательное действие для настройки DbContextOptions для контекста. Это является альтернативой настройке контекста путем переопределения OnConfiguring(DbContextOptionsBuilder) метода в производном контексте.
Если здесь указано действие, метод будет по-прежнему OnConfiguring(DbContextOptionsBuilder) выполняться, если он был переопределен в производном контексте. OnConfiguring(DbContextOptionsBuilder) конфигурация будет применяться в дополнение к конфигурации, выполняемой здесь.
Чтобы параметры были переданы в контекст, необходимо предоставить в контексте конструктор, который принимает DbContextOptions<TContext> и передает его в базовый конструктор .DbContext
- contextLifetime
- ServiceLifetime
Время существования для регистрации службы DbContext в контейнере.
- optionsLifetime
- ServiceLifetime
Время существования для регистрации службы DbContextOptions в контейнере.
Возвращаемое значение
Та же коллекция служб, что позволяет объединить несколько вызовов в цепочку.
Примеры
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString));
}
Комментарии
Используйте этот метод при внедрении зависимостей в приложении, например при использовании ASP.NET Core. Для приложений, которые не используют внедрение зависимостей, рассмотрите возможность создания DbContext экземпляров непосредственно с помощью конструктора. Затем OnConfiguring(DbContextOptionsBuilder) метод можно переопределить для настройки строки подключения и других параметров.
Entity Framework Core не поддерживает выполнение нескольких параллельных операций в одном экземпляре DbContext, включая параллельное выполнение асинхронных запросов и любое явное использование экземпляра из нескольких потоков одновременно. Поэтому всегда ожидайте асинхронные вызовы немедленно или используйте отдельные экземпляры DbContext для операций, которые выполняются параллельно. Дополнительные сведения и примеры см. в разделе Предотвращение проблем с потоком DbContext .
Дополнительные сведения и примеры см. в статье Использование DbContext с внедрением зависимостей .
Применяется к
AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)
Регистрирует заданный контекст в качестве службы в IServiceCollection.
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContext<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder>? optionsAction, Microsoft.Extensions.DependencyInjection.ServiceLifetime contextLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Microsoft.Extensions.DependencyInjection.ServiceLifetime optionsLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContext : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * Microsoft.Extensions.DependencyInjection.ServiceLifetime * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContext(Of TContextService, TContextImplementation) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional contextLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped, Optional optionsLifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IServiceCollection
Параметры типа
- TContextService
Класс или интерфейс, который будет использоваться для разрешения контекста из контейнера.
- TContextImplementation
Конкретный тип реализации для создания.
Параметры
- serviceCollection
- IServiceCollection
Коллекция IServiceCollection, в которую добавляются службы.
- optionsAction
- Action<IServiceProvider,DbContextOptionsBuilder>
Необязательное действие для настройки DbContextOptions для контекста. Это является альтернативой настройке контекста путем переопределения OnConfiguring(DbContextOptionsBuilder) метода в производном контексте.
Если здесь указано действие, метод будет по-прежнему OnConfiguring(DbContextOptionsBuilder) выполняться, если он был переопределен в производном контексте. OnConfiguring(DbContextOptionsBuilder) конфигурация будет применяться в дополнение к конфигурации, выполняемой здесь.
Чтобы параметры были переданы в контекст, необходимо предоставить в контексте конструктор, который принимает DbContextOptions<TContext> и передает его в базовый конструктор .DbContext
- contextLifetime
- ServiceLifetime
Время существования для регистрации службы DbContext в контейнере.
- optionsLifetime
- ServiceLifetime
Время существования для регистрации службы DbContextOptions в контейнере.
Возвращаемое значение
Та же коллекция служб, что позволяет объединить несколько вызовов в цепочку.
Примеры
public void ConfigureServices(IServiceCollection services)
{
var connectionString = "connection string to database";
services
.AddEntityFrameworkSqlServer()
.AddDbContext<MyContext>((serviceProvider, options) =>
options.UseSqlServer(connectionString)
.UseInternalServiceProvider(serviceProvider));
}
Комментарии
Используйте этот метод при внедрении зависимостей в приложении, например при использовании ASP.NET Core. Для приложений, которые не используют внедрение зависимостей, рассмотрите возможность создания DbContext экземпляров непосредственно с помощью конструктора. Затем OnConfiguring(DbContextOptionsBuilder) метод можно переопределить для настройки строки подключения и других параметров.
Entity Framework Core не поддерживает выполнение нескольких параллельных операций в одном экземпляре DbContext, включая параллельное выполнение асинхронных запросов и любое явное использование экземпляра из нескольких потоков одновременно. Поэтому всегда ожидайте асинхронные вызовы немедленно или используйте отдельные экземпляры DbContext для операций, которые выполняются параллельно. Дополнительные сведения и примеры см. в разделе Предотвращение проблем с потоком DbContext .
Дополнительные сведения и примеры см. в статье Использование DbContext с внедрением зависимостей .
Эта перегрузка имеет объект , предоставляющий optionsAction
приложению IServiceProvider. Это полезно, если вы хотите настроить Entity Framework Core для разрешения внутренних служб из основного поставщика службы приложений. По умолчанию рекомендуется использовать AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) , который позволяет Entity Framework создавать и обслуживать собственные IServiceProvider для внутренних служб Entity Framework.
Применяется к
Entity Framework