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.

Эта перегрузка имеет объект , предоставляющий optionsAction приложения IServiceProvider. Это полезно, если вы хотите настроить Entity Framework для разрешения внутренних служб из основного поставщика служб приложений. По умолчанию рекомендуется использовать другую перегрузку, которая позволяет Entity Framework создавать и поддерживать собственные IServiceProvider для внутренних служб Entity Framework.

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.

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