Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OWIN DbContext和我所有存储库的单个DbContext_C#_Ninject_Dbcontext_Owin - Fatal编程技术网

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

C# OWIN DbContext和我所有存储库的单个DbContext,c#,ninject,dbcontext,owin,C#,Ninject,Dbcontext,Owin,我正在构建一个ASP.NET MVC应用程序。我不熟悉整个存储库/工作单元模式。我正在为我的EF对象实现一个通用存储库 我意识到,确保每个Http请求只有一个DbContext是一个问题。。。我非常确信,我可以通过使用OWIN创建一个实例来实现这一点 /// <summary> /// Configures OWIN /// </summary> /// <param name="app"></param>

我正在构建一个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();
    }
  • 我应该使用这个/OWIN还是两者都使用
  • 我是否需要将DbContext包装到接口或其他东西中

我认为<代码> DbValue是一个工作单元,它封装了一个事务。将其包装在接口中可以更容易地在测试代码中进行模拟,否则您可以
将它
绑定到self
IIRC,前提是直接依赖
DbContext
不会让您感到害怕;)我只是想知道,对于我使用的每个存储库,使用一个单独的DbContext实例是否明智…?哦,我明白你的意思了!我可以将我的quizenties对象
绑定到self
,无论何时使用它,它都会得到相同的实例!?
this.kernel.Bind(IMyDbContext).To(MyDbContext).InRequestScope();