Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ez az oldal ismertette az EF Core-alkalmazások tesztelésével kapcsolatos kevésbé gyakori témaköröket.
EnableServiceProviderCaching
Az EF Core egy belső szolgáltatót használ az adatbázis-műveletekhez szükséges szolgáltatások kezelésére, beleértve a lekérdezések fordítását, a modellkészítést és az egyéb alapvető funkciókat. Az EF Core alapértelmezés szerint gyorsítótárazza ezeket a belső szolgáltatókat a teljesítmény javítása érdekében, ha több DbContext példány is ugyanazt a konfigurációt használja.
A EnableServiceProviderCaching metódus azt szabályozza, hogy az EF Core gyorsítótárazza-e a belső szolgáltatót:
public class ApplicationDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.EnableServiceProviderCaching(false)
.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=Test");
}
}
Alapértelmezett viselkedés: A szolgáltató gyorsítótárazása alapértelmezés szerint engedélyezve van (true). Ez a következőt jelenti:
- A szolgáltatók gyorsítótárazva vannak és az azonos konfigurációjú
DbContextpéldányok esetében újra felhasználhatók. - Jobb teljesítmény a sok
DbContextpéldányt létrehozó alkalmazások esetében - Kisebb memóriaterhelés, ha több környezet osztozik a konfigurációkon
Mikor tiltsa le a gyorsítótárazást: A szolgáltatói gyorsítótárazás letiltása jelentősen lelassítja DbContext a létrehozást, és az esetek túlnyomó többségében az alapértelmezett viselkedés javasolt. Ha hibás belső szolgáltatásokkal kapcsolatos problémák merülnek fel, akkor ezeket más módon kell kijavítani. Ha azonban tesztelési célokra lecseréli a szolgáltatásokat, letilthatja a szolgáltató gyorsítótárazását (false) annak biztosítása érdekében, hogy minden teszt friss szolgáltatót kapjon.