Share via


EntityFrameworkServiceCollectionExtensions.AddDbContext Metode

Definisi

Overload

AddDbContext<TContext>(IServiceCollection, ServiceLifetime)

Mendaftarkan konteks yang diberikan sebagai layanan di IServiceCollection. Anda menggunakan metode ini saat menggunakan injeksi dependensi di aplikasi Anda, seperti dengan ASP.NET. Untuk informasi selengkapnya tentang menyiapkan injeksi dependensi, lihat http://go.microsoft.com/fwlink/?LinkId=526890.

AddDbContext<TContext>(IServiceCollection, ServiceLifetime, ServiceLifetime)

Mendaftarkan konteks yang diberikan sebagai layanan di IServiceCollection.

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

Mendaftarkan konteks yang diberikan sebagai layanan di IServiceCollection. Anda menggunakan metode ini saat menggunakan injeksi dependensi di aplikasi Anda, seperti dengan ASP.NET. Untuk informasi selengkapnya tentang menyiapkan injeksi dependensi, lihat http://go.microsoft.com/fwlink/?LinkId=526890.

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

Mendaftarkan konteks yang diberikan sebagai layanan di IServiceCollection. Anda menggunakan metode ini saat menggunakan injeksi dependensi di aplikasi Anda, seperti dengan ASP.NET. Untuk informasi selengkapnya tentang menyiapkan injeksi dependensi, lihat http://go.microsoft.com/fwlink/?LinkId=526890.

Kelebihan beban ini memiliki optionsAction yang menyediakan aplikasi IServiceProvider. Ini berguna jika Anda ingin mengatur Kerangka Kerja Entitas untuk menyelesaikan layanan internalnya dari penyedia layanan aplikasi utama. Secara default, sebaiknya gunakan kelebihan beban lainnya, yang memungkinkan Kerangka Kerja Entitas untuk membuat dan memeliharanya sendiri IServiceProvider untuk layanan Kerangka Kerja Entitas internal.

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

Mendaftarkan konteks yang diberikan sebagai layanan di IServiceCollection.

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

Mendaftarkan konteks yang diberikan sebagai layanan di IServiceCollection.

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, ServiceLifetime, ServiceLifetime)

Mendaftarkan konteks yang diberikan sebagai layanan di IServiceCollection.

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)

Mendaftarkan konteks yang diberikan sebagai layanan di IServiceCollection.

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)

Mendaftarkan konteks yang diberikan sebagai layanan di IServiceCollection.

AddDbContext<TContext>(IServiceCollection, ServiceLifetime)

Mendaftarkan konteks yang diberikan sebagai layanan di IServiceCollection. Anda menggunakan metode ini saat menggunakan injeksi dependensi di aplikasi Anda, seperti dengan ASP.NET. Untuk informasi selengkapnya tentang menyiapkan injeksi dependensi, lihat 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

Jenis parameter

TContext

Jenis konteks yang akan didaftarkan.

Parameter

serviceCollection
IServiceCollection

untuk IServiceCollection menambahkan layanan.

contextLifetime
ServiceLifetime

Masa pakai untuk mendaftarkan layanan DbContext dalam kontainer.

Mengembalikan

Koleksi layanan yang sama sehingga beberapa panggilan dapat dirangkai.

Contoh

public void ConfigureServices(IServiceCollection services) 
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(ServiceLifetime.Scoped); 
}

Berlaku untuk

AddDbContext<TContext>(IServiceCollection, ServiceLifetime, ServiceLifetime)

Mendaftarkan konteks yang diberikan sebagai layanan di 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

Jenis parameter

TContext

Jenis konteks yang akan didaftarkan.

Parameter

serviceCollection
IServiceCollection

untuk IServiceCollection menambahkan layanan.

contextLifetime
ServiceLifetime

Masa pakai untuk mendaftarkan layanan DbContext dalam kontainer.

optionsLifetime
ServiceLifetime

Masa pakai untuk mendaftarkan layanan DbContextOptions dalam kontainer.

Mengembalikan

Koleksi layanan yang sama sehingga beberapa panggilan dapat dirangkai.

Contoh

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(ServiceLifetime.Scoped);
}

Keterangan

Gunakan metode ini saat menggunakan injeksi dependensi di aplikasi Anda, seperti dengan ASP.NET Core. Untuk aplikasi yang tidak menggunakan injeksi dependensi, pertimbangkan untuk membuat DbContext instans secara langsung dengan konstruktornya. Metode OnConfiguring(DbContextOptionsBuilder) ini kemudian dapat ditimpa untuk mengonfigurasi string koneksi dan opsi lainnya.

Entity Framework Core tidak mendukung beberapa operasi paralel yang dijalankan pada instans DbContext yang sama. Ini termasuk eksekusi paralel kueri asinkron dan penggunaan bersamaan eksplisit dari beberapa utas. Oleh karena itu, selalu tunggu panggilan asinkron segera, atau gunakan instans DbContext terpisah untuk operasi yang dijalankan secara paralel. Lihat Menghindari masalah utas DbContext untuk informasi dan contoh selengkapnya.

Lihat Menggunakan DbContext dengan injeksi dependensi untuk informasi dan contoh selengkapnya.

Berlaku untuk

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

Mendaftarkan konteks yang diberikan sebagai layanan di IServiceCollection. Anda menggunakan metode ini saat menggunakan injeksi dependensi di aplikasi Anda, seperti dengan ASP.NET. Untuk informasi selengkapnya tentang menyiapkan injeksi dependensi, lihat 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

Jenis parameter

TContext

Jenis konteks yang akan didaftarkan.

Parameter

serviceCollection
IServiceCollection

untuk IServiceCollection menambahkan layanan.

optionsAction
Action<DbContextOptionsBuilder>

Tindakan opsional untuk mengonfigurasi DbContextOptions untuk konteks. Ini memberikan alternatif untuk melakukan konfigurasi konteks dengan mengesampingkan OnConfiguring(DbContextOptionsBuilder) metode dalam konteks turunan Anda.

Jika tindakan disediakan di sini, OnConfiguring(DbContextOptionsBuilder) metode akan tetap dijalankan jika telah ditimpa pada konteks turunan. OnConfiguring(DbContextOptionsBuilder) konfigurasi akan diterapkan selain konfigurasi yang dilakukan di sini.

Agar opsi diteruskan ke dalam konteks Anda, Anda perlu mengekspos konstruktor pada konteks Anda yang mengambil DbContextOptions<TContext> dan meneruskannya ke konstruktor DbContextdasar .

contextLifetime
ServiceLifetime

Masa pakai untuk mendaftarkan layanan DbContext dalam kontainer.

Mengembalikan

Koleksi layanan yang sama sehingga beberapa panggilan dapat dirangkai.

Contoh

public void ConfigureServices(IServiceCollection services) 
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString)); 
}

Berlaku untuk

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

Mendaftarkan konteks yang diberikan sebagai layanan di IServiceCollection. Anda menggunakan metode ini saat menggunakan injeksi dependensi di aplikasi Anda, seperti dengan ASP.NET. Untuk informasi selengkapnya tentang menyiapkan injeksi dependensi, lihat http://go.microsoft.com/fwlink/?LinkId=526890.

Kelebihan beban ini memiliki optionsAction yang menyediakan aplikasi IServiceProvider. Ini berguna jika Anda ingin mengatur Kerangka Kerja Entitas untuk menyelesaikan layanan internalnya dari penyedia layanan aplikasi utama. Secara default, sebaiknya gunakan kelebihan beban lainnya, yang memungkinkan Kerangka Kerja Entitas untuk membuat dan memeliharanya sendiri IServiceProvider untuk layanan Kerangka Kerja Entitas internal.

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

Jenis parameter

TContext

Jenis konteks yang akan didaftarkan.

Parameter

serviceCollection
IServiceCollection

untuk IServiceCollection menambahkan layanan.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Tindakan opsional untuk mengonfigurasi DbContextOptions untuk konteks. Ini memberikan alternatif untuk melakukan konfigurasi konteks dengan mengesampingkan OnConfiguring(DbContextOptionsBuilder) metode dalam konteks turunan Anda.

Jika tindakan disediakan di sini, OnConfiguring(DbContextOptionsBuilder) metode akan tetap dijalankan jika telah ditimpa pada konteks turunan. OnConfiguring(DbContextOptionsBuilder) konfigurasi akan diterapkan selain konfigurasi yang dilakukan di sini.

Agar opsi diteruskan ke dalam konteks Anda, Anda perlu mengekspos konstruktor pada konteks Anda yang mengambil DbContextOptions<TContext> dan meneruskannya ke konstruktor DbContextdasar .

contextLifetime
ServiceLifetime

Masa pakai untuk mendaftarkan layanan DbContext dalam kontainer.

Mengembalikan

Koleksi layanan yang sama sehingga beberapa panggilan dapat dirangkai.

Contoh

public void ConfigureServices(IServiceCollection services) 
{
    var connectionString = "connection string to database";

    services
        .AddEntityFrameworkSqlServer()
        .AddDbContext<MyContext>((serviceProvider, options) => 
            options.UseSqlServer(connectionString)
                   .UseInternalServiceProvider(serviceProvider)); 
}

Berlaku untuk

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

Mendaftarkan konteks yang diberikan sebagai layanan di 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

Jenis parameter

TContext

Jenis konteks yang akan didaftarkan.

Parameter

serviceCollection
IServiceCollection

untuk IServiceCollection menambahkan layanan.

optionsAction
Action<DbContextOptionsBuilder>

Tindakan opsional untuk mengonfigurasi DbContextOptions untuk konteks. Ini memberikan alternatif untuk melakukan konfigurasi konteks dengan mengesampingkan OnConfiguring(DbContextOptionsBuilder) metode dalam konteks turunan Anda.

Jika tindakan disediakan di sini, OnConfiguring(DbContextOptionsBuilder) metode akan tetap dijalankan jika telah ditimpa pada konteks turunan. OnConfiguring(DbContextOptionsBuilder) konfigurasi akan diterapkan selain konfigurasi yang dilakukan di sini.

Agar opsi diteruskan ke dalam konteks Anda, Anda perlu mengekspos konstruktor pada konteks Anda yang mengambil DbContextOptions<TContext> dan meneruskannya ke konstruktor DbContextdasar .

contextLifetime
ServiceLifetime

Masa pakai untuk mendaftarkan layanan DbContext dalam kontainer.

optionsLifetime
ServiceLifetime

Masa pakai untuk mendaftarkan layanan DbContextOptions dalam kontainer.

Mengembalikan

Koleksi layanan yang sama sehingga beberapa panggilan dapat dirangkai.

Contoh

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString));
}

Keterangan

Gunakan metode ini saat menggunakan injeksi dependensi di aplikasi Anda, seperti dengan ASP.NET Core. Untuk aplikasi yang tidak menggunakan injeksi dependensi, pertimbangkan untuk membuat DbContext instans secara langsung dengan konstruktornya. Metode OnConfiguring(DbContextOptionsBuilder) ini kemudian dapat ditimpa untuk mengonfigurasi string koneksi dan opsi lainnya.

Entity Framework Core tidak mendukung beberapa operasi paralel yang dijalankan pada instans DbContext yang sama. Ini termasuk eksekusi paralel kueri asinkron dan penggunaan bersamaan eksplisit dari beberapa utas. Oleh karena itu, selalu tunggu panggilan asinkron segera, atau gunakan instans DbContext terpisah untuk operasi yang dijalankan secara paralel. Lihat Menghindari masalah utas DbContext untuk informasi dan contoh selengkapnya.

Lihat Menggunakan DbContext dengan injeksi dependensi untuk informasi dan contoh selengkapnya.

Berlaku untuk

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

Mendaftarkan konteks yang diberikan sebagai layanan di 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

Jenis parameter

TContext

Jenis konteks yang akan didaftarkan.

Parameter

serviceCollection
IServiceCollection

untuk IServiceCollection menambahkan layanan.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Tindakan opsional untuk mengonfigurasi DbContextOptions untuk konteks. Ini memberikan alternatif untuk melakukan konfigurasi konteks dengan mengambil alih OnConfiguring(DbContextOptionsBuilder) metode dalam konteks turunan Anda.

Jika tindakan disediakan di sini, OnConfiguring(DbContextOptionsBuilder) metode akan tetap dijalankan jika telah ditimpa pada konteks turunan. OnConfiguring(DbContextOptionsBuilder) konfigurasi akan diterapkan selain konfigurasi yang dilakukan di sini.

Agar opsi diteruskan ke dalam konteks Anda, Anda perlu mengekspos konstruktor pada konteks Anda yang mengambil DbContextOptions<TContext> dan meneruskannya ke konstruktor DbContextdasar .

contextLifetime
ServiceLifetime

Masa pakai untuk mendaftarkan layanan DbContext dalam kontainer.

optionsLifetime
ServiceLifetime

Masa pakai untuk mendaftarkan layanan DbContextOptions dalam kontainer.

Mengembalikan

Koleksi layanan yang sama sehingga beberapa panggilan dapat dirangkai.

Contoh

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services
        .AddEntityFrameworkSqlServer()
        .AddDbContext<MyContext>((serviceProvider, options) =>
            options.UseSqlServer(connectionString)
                   .UseInternalServiceProvider(serviceProvider));
}

Keterangan

Gunakan metode ini saat menggunakan injeksi dependensi di aplikasi Anda, seperti dengan ASP.NET Core. Untuk aplikasi yang tidak menggunakan injeksi dependensi, pertimbangkan untuk membuat DbContext instans secara langsung dengan konstruktornya. Metode ini OnConfiguring(DbContextOptionsBuilder) kemudian dapat ditimpa untuk mengonfigurasi string koneksi dan opsi lainnya.

Entity Framework Core tidak mendukung beberapa operasi paralel yang dijalankan pada instans DbContext yang sama. Ini termasuk eksekusi paralel kueri asinkron dan penggunaan bersamaan eksplisit dari beberapa utas. Oleh karena itu, selalu tunggu panggilan asinkron segera, atau gunakan instans DbContext terpisah untuk operasi yang dijalankan secara paralel. Lihat Menghindari masalah utas DbContext untuk informasi dan contoh selengkapnya.

Entity Framework Core tidak mendukung beberapa operasi paralel yang dijalankan pada instans DbContext yang sama. Ini termasuk eksekusi paralel kueri asinkron dan penggunaan bersamaan eksplisit dari beberapa utas. Oleh karena itu, selalu tunggu panggilan asinkron segera, atau gunakan instans DbContext terpisah untuk operasi yang dijalankan secara paralel. Lihat Menghindari masalah utas DbContext untuk informasi dan contoh selengkapnya.

Lihat Menggunakan DbContext dengan injeksi dependensi untuk informasi dan contoh selengkapnya.

Kelebihan beban ini memiliki optionsAction yang menyediakan aplikasi IServiceProvider. Ini berguna jika Anda ingin menyiapkan Entity Framework Core untuk menyelesaikan layanan internalnya dari penyedia layanan aplikasi utama. Secara default, sebaiknya gunakan AddDbContext<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) yang memungkinkan Kerangka Kerja Entitas untuk membuat dan memelihara sendiri IServiceProvider untuk layanan Kerangka Kerja Entitas internal.

Berlaku untuk

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, ServiceLifetime, ServiceLifetime)

Mendaftarkan konteks yang diberikan sebagai layanan di 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

Jenis parameter

TContextService

Kelas atau antarmuka yang akan digunakan untuk menyelesaikan konteks dari kontainer.

TContextImplementation

Jenis implementasi konkret untuk dibuat.

Parameter

serviceCollection
IServiceCollection

untuk IServiceCollection menambahkan layanan.

contextLifetime
ServiceLifetime

Masa pakai untuk mendaftarkan layanan DbContext dalam kontainer.

optionsLifetime
ServiceLifetime

Masa pakai untuk mendaftarkan layanan DbContextOptions dalam kontainer.

Mengembalikan

Koleksi layanan yang sama sehingga beberapa panggilan dapat dirangkai.

Contoh

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(ServiceLifetime.Scoped);
}

Keterangan

Gunakan metode ini saat menggunakan injeksi dependensi di aplikasi Anda, seperti dengan ASP.NET Core. Untuk aplikasi yang tidak menggunakan injeksi dependensi, pertimbangkan untuk membuat DbContext instans secara langsung dengan konstruktornya. Metode ini OnConfiguring(DbContextOptionsBuilder) kemudian dapat ditimpa untuk mengonfigurasi string koneksi dan opsi lainnya.

Entity Framework Core tidak mendukung beberapa operasi paralel yang dijalankan pada instans DbContext yang sama. Ini termasuk eksekusi paralel kueri asinkron dan penggunaan bersamaan eksplisit dari beberapa utas. Oleh karena itu, selalu tunggu panggilan asinkron segera, atau gunakan instans DbContext terpisah untuk operasi yang dijalankan secara paralel. Lihat Menghindari masalah utas DbContext untuk informasi dan contoh selengkapnya.

Lihat Menggunakan DbContext dengan injeksi dependensi untuk informasi dan contoh selengkapnya.

Berlaku untuk

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)

Mendaftarkan konteks yang diberikan sebagai layanan di 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

Jenis parameter

TContextService

Kelas atau antarmuka yang akan digunakan untuk menyelesaikan konteks dari kontainer.

TContextImplementation

Jenis implementasi konkret untuk dibuat.

Parameter

serviceCollection
IServiceCollection

untuk IServiceCollection menambahkan layanan.

optionsAction
Action<DbContextOptionsBuilder>

Tindakan opsional untuk mengonfigurasi DbContextOptions untuk konteks. Ini memberikan alternatif untuk melakukan konfigurasi konteks dengan mengambil alih OnConfiguring(DbContextOptionsBuilder) metode dalam konteks turunan Anda.

Jika tindakan disediakan di sini, OnConfiguring(DbContextOptionsBuilder) metode akan tetap dijalankan jika telah ditimpa pada konteks turunan. OnConfiguring(DbContextOptionsBuilder) konfigurasi akan diterapkan selain konfigurasi yang dilakukan di sini.

Agar opsi diteruskan ke dalam konteks Anda, Anda perlu mengekspos konstruktor pada konteks Anda yang mengambil DbContextOptions<TContext> dan meneruskannya ke konstruktor DbContextdasar .

contextLifetime
ServiceLifetime

Masa pakai untuk mendaftarkan layanan DbContext dalam kontainer.

optionsLifetime
ServiceLifetime

Masa pakai untuk mendaftarkan layanan DbContextOptions dalam kontainer.

Mengembalikan

Koleksi layanan yang sama sehingga beberapa panggilan dapat dirangkai.

Contoh

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services.AddDbContext<MyContext>(options => options.UseSqlServer(connectionString));
}

Keterangan

Gunakan metode ini saat menggunakan injeksi dependensi di aplikasi Anda, seperti dengan ASP.NET Core. Untuk aplikasi yang tidak menggunakan injeksi dependensi, pertimbangkan untuk membuat DbContext instans secara langsung dengan konstruktornya. Metode ini OnConfiguring(DbContextOptionsBuilder) kemudian dapat ditimpa untuk mengonfigurasi string koneksi dan opsi lainnya.

Entity Framework Core tidak mendukung beberapa operasi paralel yang dijalankan pada instans DbContext yang sama. Ini termasuk eksekusi paralel kueri asinkron dan penggunaan bersamaan eksplisit dari beberapa utas. Oleh karena itu, selalu tunggu panggilan asinkron segera, atau gunakan instans DbContext terpisah untuk operasi yang dijalankan secara paralel. Lihat Menghindari masalah utas DbContext untuk informasi dan contoh selengkapnya.

Lihat Menggunakan DbContext dengan injeksi dependensi untuk informasi dan contoh selengkapnya.

Berlaku untuk

AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime)

Mendaftarkan konteks yang diberikan sebagai layanan di 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

Jenis parameter

TContextService

Kelas atau antarmuka yang akan digunakan untuk menyelesaikan konteks dari kontainer.

TContextImplementation

Jenis implementasi konkret untuk dibuat.

Parameter

serviceCollection
IServiceCollection

untuk IServiceCollection menambahkan layanan.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Tindakan opsional untuk mengonfigurasi DbContextOptions untuk konteks. Ini memberikan alternatif untuk melakukan konfigurasi konteks dengan mengambil alih OnConfiguring(DbContextOptionsBuilder) metode dalam konteks turunan Anda.

Jika tindakan disediakan di sini, OnConfiguring(DbContextOptionsBuilder) metode akan tetap dijalankan jika telah ditimpa pada konteks turunan. OnConfiguring(DbContextOptionsBuilder) konfigurasi akan diterapkan selain konfigurasi yang dilakukan di sini.

Agar opsi diteruskan ke dalam konteks Anda, Anda perlu mengekspos konstruktor pada konteks Anda yang mengambil DbContextOptions<TContext> dan meneruskannya ke konstruktor DbContextdasar .

contextLifetime
ServiceLifetime

Masa pakai untuk mendaftarkan layanan DbContext dalam kontainer.

optionsLifetime
ServiceLifetime

Masa pakai untuk mendaftarkan layanan DbContextOptions dalam kontainer.

Mengembalikan

Koleksi layanan yang sama sehingga beberapa panggilan dapat dirangkai.

Contoh

public void ConfigureServices(IServiceCollection services)
{
    var connectionString = "connection string to database";

    services
        .AddEntityFrameworkSqlServer()
        .AddDbContext<MyContext>((serviceProvider, options) =>
            options.UseSqlServer(connectionString)
                   .UseInternalServiceProvider(serviceProvider));
}

Keterangan

Gunakan metode ini saat menggunakan injeksi dependensi di aplikasi Anda, seperti dengan ASP.NET Core. Untuk aplikasi yang tidak menggunakan injeksi dependensi, pertimbangkan untuk membuat DbContext instans secara langsung dengan konstruktornya. Metode ini OnConfiguring(DbContextOptionsBuilder) kemudian dapat ditimpa untuk mengonfigurasi string koneksi dan opsi lainnya.

Entity Framework Core tidak mendukung beberapa operasi paralel yang dijalankan pada instans DbContext yang sama. Ini termasuk eksekusi paralel kueri asinkron dan penggunaan bersamaan eksplisit dari beberapa utas. Oleh karena itu, selalu tunggu panggilan asinkron segera, atau gunakan instans DbContext terpisah untuk operasi yang dijalankan secara paralel. Lihat Menghindari masalah utas DbContext untuk informasi dan contoh selengkapnya.

Lihat Menggunakan DbContext dengan injeksi dependensi untuk informasi dan contoh selengkapnya.

Kelebihan beban ini memiliki optionsAction yang menyediakan aplikasi IServiceProvider. Ini berguna jika Anda ingin menyiapkan Entity Framework Core untuk menyelesaikan layanan internalnya dari penyedia layanan aplikasi utama. Secara default, sebaiknya gunakan AddDbContext<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, ServiceLifetime, ServiceLifetime) yang memungkinkan Kerangka Kerja Entitas untuk membuat dan memelihara sendiri IServiceProvider untuk layanan Kerangka Kerja Entitas internal.

Berlaku untuk