Asp.net

如何從 Owin 管道中獲取 ApplicationDbContext

  • May 27, 2014

這必須很簡單,但我會睜大眼睛試圖找到答案。控制器操作如何獲得對隱藏在 Owin 管道中的每個請求 ApplicationDbContext 的引用?

編輯:好的,我想我越來越近了……也許不是……我所有的Google搜尋似乎都導致了這篇部落格文章,使用哪個 sez:

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

其中 context 顯然是Microsoft.Owin.IOwinContext. 所以我嘗試了:

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

但是該Get<T>方法需要一個string key參數。:(

答案(顯然)是…… 你需要添加這個 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();
   }
}

引用自:https://stackoverflow.com/questions/23881489