当只在容器中注册子类时,是否可以解析父对象。
这是我的情况。我注册MyDbContext
来自DbContext
。
services.AddDbContext<MyDbContext>(options =>options.UseSqlServer(connectionString,
sql => sql.MigrationsAssembly(migrationsAssembly)));
是否可以将上述实例解析为DbContext
DbContext applicationContext = context.RequestServices.GetService<DbContext>();
目前我为上面的代码获取null。是否有可能从容器中解决这个问题。我需要这样做,因为上面的代码是中间件,它是框架/基础架构代码。
答案 0 :(得分:2)
您需要在DI容器中注册DbContext
,以便在解析时映射它。
services.AddScoped<DbContext, MyDbContext>();
这样,只要请求DbContext
,它就会解析为MyDbContext