OWIN DbContext和我所有存储库的单个DbContext

时间:2014-09-13 20:27:37

标签: c# ninject dbcontext owin

我正在构建一个ASP.NET MVC应用程序。我是整个存储库/工作单元模式的新手。我正在为我的EF对象实现通用存储库。

我意识到确保每个Http请求只有一个DbContext存在问题......我非常确定我可以通过使用OWIN创建实例来实现这一点。

    /// <summary>
    /// Configures OWIN
    /// </summary>
    /// <param name="app"></param>
    public void Configuration(IAppBuilder app)
    {
        // Create instance of database context
        app.CreatePerOwinContext<QuizEntitiesDbContext>(GetQuizEntitiesDbContext);
    }

    /// <summary>
    /// Returns an instance of the QuizEntitiesDbContext database context
    /// </summary>
    /// <returns></returns>
    public static QuizEntitiesDbContext GetQuizEntitiesDbContext()
    {
        return new QuizEntitiesDbContext();
    }

现在,如果我想在我的控制器中获取该实例,这似乎很好,但实际上我需要能够通过我的通用存储库访问此实例...

  • 有没有办法可以实现这一目标?

我还在我的项目中使用了Ninject依赖注入器,并且我已经读过我可以获得每个HTTP请求的对象实例,以便在我的应用程序中使用,这有点像这样:

this.kernel.Bind(IMyDbContext).To(MyDbContext).InRequestScope();
  • 我应该使用这个/ OWIN还是两者都用?
  • 我是否需要将DbContext包装在界面中?

0 个答案:

没有答案