EntityFrameworkServiceCollectionExtensions.AddDbContext Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 |
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
Entity Framework
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk