Share via


EntityFrameworkServiceCollectionExtensions.AddDbContextPool Metode

Definisi

Overload

AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

Mendaftarkan yang diberikan DbContext sebagai layanan di IServiceCollection, dan memungkinkan pengumpulan DbContext untuk pendaftaran ini.

AddDbContextPool<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

Mendaftarkan yang diberikan DbContext sebagai layanan di IServiceCollection, dan memungkinkan pengumpulan DbContext untuk pendaftaran ini.

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

Mendaftarkan yang diberikan DbContext sebagai layanan di IServiceCollection, dan memungkinkan pengumpulan DbContext untuk pendaftaran ini.

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

Mendaftarkan yang diberikan DbContext sebagai layanan di IServiceCollection, dan memungkinkan pengumpulan DbContext untuk pendaftaran ini.

AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

Mendaftarkan yang diberikan DbContext sebagai layanan di IServiceCollection, dan memungkinkan pengumpulan DbContext untuk pendaftaran ini.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 1024) As IServiceCollection

Jenis parameter

TContext

Jenis konteks yang akan didaftarkan.

Parameter

serviceCollection
IServiceCollection

untuk IServiceCollection menambahkan layanan.

optionsAction
Action<DbContextOptionsBuilder>

Tindakan yang DbContextOptions diperlukan untuk mengonfigurasi untuk konteks. Saat menggunakan pengumpulan konteks, konfigurasi opsi harus dilakukan secara eksternal; OnConfiguring(DbContextOptionsBuilder) tidak akan dipanggil.

poolSize
Int32

Mengatur jumlah maksimum instans yang dipertahankan oleh kumpulan. Default ke 1024.

Mengembalikan

Koleksi layanan yang sama sehingga beberapa panggilan dapat dirangkai.

Keterangan

Pengumpulan DbContext dapat meningkatkan performa dalam skenario throughput tinggi dengan menggunakan kembali instans konteks. Namun, untuk sebagian besar aplikasi, perolehan performa ini sangat kecil. Perhatikan bahwa saat menggunakan pengumpulan, konfigurasi konteks tidak dapat berubah antara penggunaan, dan layanan terlingkup yang disuntikkan ke dalam konteks hanya akan diselesaikan sekali dari cakupan awal. Hanya pertimbangkan untuk menggunakan pengumpulan DbContext saat pengujian performa menunjukkan bahwa pengujian tersebut memberikan peningkatan nyata.

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 dan Menggunakan pengumpulan DbContext untuk informasi dan contoh selengkapnya.

Berlaku untuk

AddDbContextPool<TContext>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

Mendaftarkan yang diberikan DbContext sebagai layanan di IServiceCollection, dan memungkinkan pengumpulan DbContext untuk pendaftaran ini.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContext : Microsoft.EntityFrameworkCore.DbContext;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContext> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContext : Microsoft.EntityFrameworkCore.DbContext;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'Context :> Microsoft.EntityFrameworkCore.DbContext)
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContext As DbContext) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 1024) As IServiceCollection

Jenis parameter

TContext

Jenis konteks yang akan didaftarkan.

Parameter

serviceCollection
IServiceCollection

untuk IServiceCollection menambahkan layanan.

optionsAction
Action<IServiceProvider,DbContextOptionsBuilder>

Tindakan yang DbContextOptions diperlukan untuk mengonfigurasi untuk konteks. Saat menggunakan pengumpulan konteks, konfigurasi opsi harus dilakukan secara eksternal; OnConfiguring(DbContextOptionsBuilder) tidak akan dipanggil.

poolSize
Int32

Mengatur jumlah maksimum instans yang dipertahankan oleh kumpulan. Default ke 1024.

Mengembalikan

Koleksi layanan yang sama sehingga beberapa panggilan dapat dirangkai.

Keterangan

Pengumpulan DbContext dapat meningkatkan performa dalam skenario throughput tinggi dengan menggunakan kembali instans konteks. Namun, untuk sebagian besar aplikasi, perolehan performa ini sangat kecil. Perhatikan bahwa saat menggunakan pengumpulan, konfigurasi konteks tidak dapat berubah antara penggunaan, dan layanan terlingkup yang disuntikkan ke dalam konteks hanya akan diselesaikan sekali dari cakupan awal. Hanya pertimbangkan untuk menggunakan pengumpulan DbContext saat pengujian performa menunjukkan bahwa pengujian tersebut memberikan peningkatan nyata.

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 dan Menggunakan pengumpulan DbContext 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 AddDbContextPool<TContext>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) yang memungkinkan Kerangka Kerja Entitas untuk membuat dan memelihara sendiri IServiceProvider untuk layanan Kerangka Kerja Entitas internal.

Berlaku untuk

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32)

Mendaftarkan yang diberikan DbContext sebagai layanan di IServiceCollection, dan memungkinkan pengumpulan DbContext untuk pendaftaran ini.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextService : null and 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of DbContextOptionsBuilder), Optional poolSize As Integer = 1024) 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 yang DbContextOptions diperlukan untuk mengonfigurasi untuk konteks. Saat menggunakan pengumpulan konteks, konfigurasi opsi harus dilakukan secara eksternal; OnConfiguring(DbContextOptionsBuilder) tidak akan dipanggil.

poolSize
Int32

Mengatur jumlah maksimum instans yang dipertahankan oleh kumpulan. Default ke 1024.

Mengembalikan

Koleksi layanan yang sama sehingga beberapa panggilan dapat dirangkai.

Keterangan

Pengumpulan DbContext dapat meningkatkan performa dalam skenario throughput tinggi dengan menggunakan kembali instans konteks. Namun, untuk sebagian besar aplikasi, perolehan performa ini sangat kecil. Perhatikan bahwa saat menggunakan pengumpulan, konfigurasi konteks tidak dapat berubah antara penggunaan, dan layanan terlingkup yang disuntikkan ke dalam konteks hanya akan diselesaikan sekali dari cakupan awal. Hanya pertimbangkan untuk menggunakan pengumpulan DbContext saat pengujian performa menunjukkan bahwa pengujian tersebut memberikan peningkatan nyata.

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 dan Menggunakan pengumpulan DbContext untuk informasi dan contoh selengkapnya.

Berlaku untuk

AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<IServiceProvider,DbContextOptionsBuilder>, Int32)

Mendaftarkan yang diberikan DbContext sebagai layanan di IServiceCollection, dan memungkinkan pengumpulan DbContext untuk pendaftaran ini.

public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 128) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
public static Microsoft.Extensions.DependencyInjection.IServiceCollection AddDbContextPool<TContextService,TContextImplementation> (this Microsoft.Extensions.DependencyInjection.IServiceCollection serviceCollection, Action<IServiceProvider,Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> optionsAction, int poolSize = 1024) where TContextService : class where TContextImplementation : Microsoft.EntityFrameworkCore.DbContext, TContextService;
static member AddDbContextPool : Microsoft.Extensions.DependencyInjection.IServiceCollection * Action<IServiceProvider, Microsoft.EntityFrameworkCore.DbContextOptionsBuilder> * int -> Microsoft.Extensions.DependencyInjection.IServiceCollection (requires 'ContextService : null and 'ContextImplementation :> Microsoft.EntityFrameworkCore.DbContext and 'ContextImplementation :> 'ContextService)
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 128) As IServiceCollection
<Extension()>
Public Function AddDbContextPool(Of TContextService As Class, TContextImplementation As Class) (serviceCollection As IServiceCollection, optionsAction As Action(Of IServiceProvider, DbContextOptionsBuilder), Optional poolSize As Integer = 1024) 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 yang DbContextOptions diperlukan untuk mengonfigurasi untuk konteks. Saat menggunakan pengumpulan konteks, konfigurasi opsi harus dilakukan secara eksternal; OnConfiguring(DbContextOptionsBuilder) tidak akan dipanggil.

poolSize
Int32

Mengatur jumlah maksimum instans yang dipertahankan oleh kumpulan. Default ke 1024.

Mengembalikan

Koleksi layanan yang sama sehingga beberapa panggilan dapat dirangkai.

Keterangan

Pengumpulan DbContext dapat meningkatkan performa dalam skenario throughput tinggi dengan menggunakan kembali instans konteks. Namun, untuk sebagian besar aplikasi, perolehan performa ini sangat kecil. Perhatikan bahwa saat menggunakan pengumpulan, konfigurasi konteks tidak dapat berubah antara penggunaan, dan layanan terlingkup yang disuntikkan ke dalam konteks hanya akan diselesaikan sekali dari cakupan awal. Hanya pertimbangkan untuk menggunakan pengumpulan DbContext saat pengujian performa menunjukkan bahwa pengujian tersebut memberikan peningkatan nyata.

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 dan Menggunakan pengumpulan DbContext 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 AddDbContextPool<TContextService,TContextImplementation>(IServiceCollection, Action<DbContextOptionsBuilder>, Int32) yang memungkinkan Kerangka Kerja Entitas untuk membuat dan memelihara sendiri IServiceProvider untuk layanan Kerangka Kerja Entitas internal.

Berlaku untuk