13

这必须很简单,但我会睁大眼睛试图找到答案。控制器操作如何获得对隐藏在 Owin 管道中的每个请求 ApplicationDbContext 的引用?

编辑:好的,我想我越来越近了......也许不是......我所有的谷歌搜索似乎都导致了这篇博客文章,使用哪个 sez:

var dbContext = context.Get<ApplicationDbContext>();

其中 context 显然是Microsoft.Owin.IOwinContext. 所以我尝试了:

var db = HttpContext.GetOwinContext().Get<ApplicationDbContext>();

但是该Get<T>方法需要一个string key参数。:(

4

1 回答 1

32

答案(显然)是...... 你需要添加这个 using 语句才能让它工作:

using Microsoft.AspNet.Identity.Owin;

所以一个完整的例子看起来像:

using Microsoft.AspNet.Identity.Owin;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        var context = HttpContext.GetOwinContext().Get<ApplicationDbContext>();
        DoSomething(context); // Use the context object; do not dispose it!

        return View();
    }
}
于 2014-05-27T05:40:33.190 回答