我正在尝试在Hangfire中执行存储过程。下面是代码
[HttpGet]
[Route("UpdateActivityStatus")]
[AutomaticRetry(Attempts = 0)]
public IActionResult UpdateStatus()
{
BackgroundJob.Enqueue(() =>
_context.Database.ExecuteSqlCommand("dbo.UpdateStatus")
);
return Ok();
}
但是我在仪表板中遇到以下异常。
System.ArgumentNullException: Value cannot be null. Parameter name: context
我可以理解数据库上下文没有在那里传递。但是我不确定该如何解决。
谢谢
答案 0 :(得分:2)
查看文档中的以下参考文献
配置完成后,您将能够使用Enqueue
重载,这将允许在调用作业时解析上下文。
例如
[HttpGet]
[Route("UpdateActivityStatus")]
[AutomaticRetry(Attempts = 0)]
public IActionResult UpdateStatus() {
BackgroundJob.Enqueue<MyDbContext>(context =>
context.Database.ExecuteSqlCommand("dbo.UpdateStatus")
);
return Ok();
}