Bagikan melalui


Topik pengujian tingkat lanjut

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 DbContext instance dengan konfigurasi yang sama
  • Performa yang lebih baik untuk aplikasi yang membuat banyak DbContext instance
  • 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.