我使用的是ASP.NET MVC和EF 6,我有一个控制器,它调用我的服务层来执行一些操作。其中一个操作必须是异步的,这样控制器就可以在操作完成之前返回一个视图。这就是它的样子:
我该怎么处理呢?
编辑:
我得到了一个异常,因为DbContext被释放了(控制器在执行Action之后正在释放DbContext )。
我通过使用新的DbContext创建一个新服务来解决这个问题,但这不是最好的解决方案。因此,我异步调用一个方法,在该方法中,我创建一个由using语句包围的新DbContext,以便在执行异步方法后将其释放。
发布于 2015-04-14 14:41:27
您可以为步骤ActionResult创建单独的4,并使用HttpClient调用该操作。
这样,它将重新创建DbContext (就像一个新的请求)。
1..
2..
3..
4
Task.Factory.StartNew(async () =>
{
var url = "/Home/SecretAction";
using (HttpClient client = new HttpClient())
{
client.PostAsync(url, new StringContent(""));
}
});
5..https://stackoverflow.com/questions/29628827
复制相似问题