Asp.net Asp net核心标识:如何在控制器外部获取默认ApplicationDbContext?

Asp.net Asp net核心标识:如何在控制器外部获取默认ApplicationDbContext?,asp.net,identity,Asp.net,Identity,我使用NetCore2.1,需要在启动时做一些准备,这需要几个直接的身份数据库查询 我试过: using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>() .CreateScope()) { var identityDb = serviceProvider.GetService<ApplicationDbContext>

我使用NetCore2.1,需要在启动时做一些准备,这需要几个直接的身份数据库查询

我试过:

using (var serviceScope = serviceProvider.GetRequiredService<IServiceScopeFactory>()
                    .CreateScope())
{
    var identityDb = serviceProvider.GetService<ApplicationDbContext>();
}
使用(var serviceScope=serviceProvider.GetRequiredService()
.CreateScope())
{
var identityDb=serviceProvider.GetService();
}
这些行产生异常:无法从根提供程序解析作用域服务“Ecoc.Data.ApplicationDbContext”。
有没有办法在代码的任意位置获取数据库上下文

在这里找到了正确的方法(例如,他们从任意类访问会话)

使用而不是,然后创建一个作用域并使用其服务提供者

与您相关的示例:

var identityDb = serviceScope.ServiceProvider.GetService<ApplicationDbContext>();
var identityDb=serviceScope.ServiceProvider.GetService();