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 に答える