web-dev-qa-db-fra.com

Configuration de Dbcontext comme transitoire

Dans ASP.NET Core/EntityFramework Core, la méthode services.AddDbContext <> ajoutera le contexte spécifié en tant que service de portée. Je crois comprendre que c'est la gestion de durée de vie suggérée pour le dbcontext par Microsoft.

Cependant, il y a beaucoup de débats dans notre département d'ingénierie à ce sujet et beaucoup pensent que le contexte doit être éliminé dès que possible. Alors, quelle est la meilleure façon de configurer le dbcontext en tant que transitoire qui conserve toujours le même modèle de référentiel généralement utilisé (c'est-à-dire en injectant le contexte directement dans le constructeur du référentiel) ainsi qu'en prenant en charge les tests unitaires flexibles?

21
Jake Shakesworth

La durée de vie est un paramètre sur AddDbContext<>(). Voir l'exemple:

services.AddDbContext<ApplicationDbContext>(options =>
         options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")), 
         ServiceLifetime.Transient);

Cela l'ajoutera à la collection de services avec une durée de vie transitoire.

39
juunas