Question
Comment doit-on injecter (en utilisant la norme de l'injection de dépendances) un DbContext
instance en IHostedService
?
Qu'ai-je essayé
J'ai actuellement mon IHostedService
classe de prendre un MainContext
(dérivant de l' DbContext
) instance dans le constructeur.
Quand je lance l'application j'obtiens:
Ne peut pas consommer de l'étendue du service 'de Microsoft.EntityFrameworkCore.DbContextOptions " de singleton 'de Microsoft.Extensions.De l'hébergement.IHostedService'.
J'ai donc essayé de l' DbContextOptions
transitoire en spécifiant:
services.AddDbContext<MainContext>(options =>
options.UseSqlite("Data Source=development.db"), ServiceLifetime.Transient);
dans mon Startup
classe.
Mais l'erreur reste la même, même si, selon cette résolu Github problème de la DbContextOptions
passé doit avoir la même durée de vie spécifiée dans l' AddDbContext
appel.
Je ne peux pas faire le contexte de base de données un singleton autrement appels simultanés à elle donnerait la simultanéité des exceptions (en raison du fait que le contexte de base de données n'est pas garanti d'être thread-safe).