Asp.net core 在HangFire中运行存储过程

Asp.net core 在HangFire中运行存储过程,asp.net-core,hangfire,Asp.net Core,Hangfire,我正试图在Hangfire中执行一个存储过程。下面是代码 [HttpGet] [Route("UpdateActivityStatus")] [AutomaticRetry(Attempts = 0)] public IActionResult UpdateStatus() { BackgroundJob.Enqueue(() => _context.Database.ExecuteSqlCommand("db

我正试图在Hangfire中执行一个存储过程。下面是代码

    [HttpGet]
    [Route("UpdateActivityStatus")]
    [AutomaticRetry(Attempts = 0)]
    public IActionResult UpdateStatus()
    {
        BackgroundJob.Enqueue(() =>
            _context.Database.ExecuteSqlCommand("dbo.UpdateStatus")
        );

        return Ok();
    }
但我在仪表板上看到了以下异常

System.ArgumentNullException:值不能为null。参数名称:上下文

我可以理解数据库上下文没有被传递到那里。但我不知道如何解决这个问题


感谢

查阅以下文档中的参考资料

参考文献

参考文献

配置后,您将能够使用
排队
重载,以便在调用作业时解析上下文

比如说

[HttpGet]
[Route("UpdateActivityStatus")]
[AutomaticRetry(Attempts = 0)]
public IActionResult UpdateStatus() {
    BackgroundJob.Enqueue<MyDbContext>(context =>
        context.Database.ExecuteSqlCommand("dbo.UpdateStatus")
    );
    return Ok();
}
[HttpGet]
[路由(“更新活动状态”)]
[自动重试(尝试次数=0)]
公共IActionResult UpdateStatus(){
BackgroundJob.Enqueue(上下文=>
context.Database.ExecuteSqlCommand(“dbo.UpdateStatus”)
);
返回Ok();
}

查看文档中的以下参考资料

参考文献

参考文献

配置后,您将能够使用
排队
重载,以便在调用作业时解析上下文

比如说

[HttpGet]
[Route("UpdateActivityStatus")]
[AutomaticRetry(Attempts = 0)]
public IActionResult UpdateStatus() {
    BackgroundJob.Enqueue<MyDbContext>(context =>
        context.Database.ExecuteSqlCommand("dbo.UpdateStatus")
    );
    return Ok();
}
[HttpGet]
[路由(“更新活动状态”)]
[自动重试(尝试次数=0)]
公共IActionResult UpdateStatus(){
BackgroundJob.Enqueue(上下文=>
context.Database.ExecuteSqlCommand(“dbo.UpdateStatus”)
);
返回Ok();
}

让hangfire在调用作业时解析上下文。感谢您回复@Nkosi。您有任何示例代码吗?让hangfire在调用作业时解析上下文。感谢您回复@Nkosi。您有任何示例代码吗?谢谢您的帮助@Nkosi。你有什么例子吗?谢谢你的帮助@Nkosi。你有什么例子吗?