Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Halaman ini menjelaskan beberapa topik yang kurang umum yang terkait dengan pengujian aplikasi EF Core.
Aktifkan Penyimpanan Penyedia Layanan
EF Core menggunakan penyedia layanan internal untuk mengelola layanan yang diperlukan untuk operasi database, termasuk kompilasi kueri, pembuatan model, dan fungsionalitas inti lainnya. Secara default, EF Core menyimpan cache penyedia layanan internal ini untuk meningkatkan performa saat beberapa DbContext instans berbagi konfigurasi yang sama.
Metode ini EnableServiceProviderCaching mengontrol apakah EF Core menyimpan cache penyedia layanan internal:
public class ApplicationDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.EnableServiceProviderCaching(false)
.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=Test");
}
}
Perilaku bawaan: Penggunaan cache penyedia layanan diaktifkan secara bawaan (true). Ini berarti:
- Penyedia layanan di-cache dan digunakan kembali di seluruh
DbContextinstance dengan konfigurasi yang sama - Performa yang lebih baik untuk aplikasi yang membuat banyak
DbContextinstance - Overhead memori yang lebih rendah saat beberapa konteks berbagi konfigurasi
Kapan harus menonaktifkan cache: Menonaktifkan cache penyedia layanan akan sangat memperlambat DbContext pembuatan dan dalam sebagian besar kasus, perilaku bawaan direkomendasikan. Jika ada masalah dengan layanan internal yang salah yang digunakan, maka mereka harus diperbaiki dengan cara yang berbeda. Jika Anda mengganti layanan untuk tujuan pengujian, namun demikian, Anda dapat menonaktifkan penyimpanan sementara penyedia layanan (false) untuk memastikan setiap pengujian mendapatkan penyedia layanan yang baru.