2

Est-il possible de résoudre un objet parent, lorsque seule une classe enfant est enregistrée dans le conteneur.Résoudre une dépendance en tant que parent dans le noyau .Net

Voici mon cas. Je m'inscris MyDbContext qui est dérivé de DbContext.

services.AddDbContext<MyDbContext>(options =>options.UseSqlServer(connectionString, 
          sql => sql.MigrationsAssembly(migrationsAssembly))); 

Est-il possible de résoudre ci-dessus par exemple comme DbContext

DbContext applicationContext = context.RequestServices.GetService<DbContext>(); 

Actuellement je reçois nulle pour le code ci-dessus. Est-il possible de résoudre cela à partir du conteneur d'une certaine manière. J'ai besoin de faire cela parce que le code ci-dessus est dans le middleware qui est le code de l'infrastructure/infrastructure.

+0

Seulement si vous enregistrez avec le conteneur DI. ie 'services.AddScoped ();' – Nkosi

Répondre

2

Vous devez enregistrer le DbContext avec le conteneur DI afin qu'il puisse être mappé lorsqu'il est résolu.

services.AddScoped<DbContext, MyDbContext>(); 

De cette façon, tout le temps DbContext est demandé remédiera à MyDbContext