在MVC引用的类库中使用Ninject的InRequestScope

时间:2013-01-29 15:52:03

标签: asp.net-mvc entity-framework ninject

我的解决方案分为以下几个方面:

  • 数据项目 - 持有实体框架
  • 业务逻辑/服务项目 - 包含实现业务逻辑的类/对数据执行其他工作
  • MVC3项目

我设置的方式是服务类确实涉及实体框架。我正在使用依赖注入来创建包装实体框架的存储库。我遇到的问题是,每次通过ninject创建存储库时,它都会创建一个新的EF上下文,因此不会保存所有更改。请注意,我在服务项目和MVC项目中都有Ninject绑定,我在这里讨论的实例是绑定位于类库中的时候。

根据我所做的研究,似乎建议使用InRequestScope,以便使用相同的上下文。但是,由于我在类库而不是MVC项目/ web项目中使用它,在类库中使用Ninject.Web.Common是否有意义(在哪里创建AppStart文件夹和所有内容)?

或者我还有另一种处理方法吗?

1 个答案:

答案 0 :(得分:0)

我误解了Ninject.Web.Common是如何工作的,我对通过nuget install自动添加的自动添加的NinjectWebCommon cs文件感到困惑,让我觉得它只适用于入口点项目。我不知道我的类库可以访问HttpContext并删除了nuget包"有用的AppStart文件夹"补充说,我能够在我的类库中使用InRequestScope。