将依赖项解析为.Net核心中的父项

时间:2017-10-18 03:03:34

标签: entity-framework dependency-injection asp.net-core-mvc .net-core dbcontext

当只在容器中注册子类时,是否可以解析父对象。

这是我的情况。我注册MyDbContext来自DbContext

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

是否可以将上述实例解析为DbContext

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

目前我为上面的代码获取null。是否有可能从容器中解决这个问题。我需要这样做,因为上面的代码是中间件,它是框架/基础架构代码。

1 个答案:

答案 0 :(得分:2)

您需要在DI容器中注册DbContext,以便在解析时映射它。

services.AddScoped<DbContext, MyDbContext>();

这样,只要请求DbContext,它就会解析为MyDbContext