0

我的解决方案分为如下:

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

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

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

或者我应该有另一种方法来处理这个吗?

4

1 回答 1

0

我误解了 Ninject.Web.Common 的工作原理,并且对通过 nuget install 自动添加的自动添加的 NinjectWebCommon cs 文件感到困惑,这让我认为它仅适用于入口点项目。我不知道我的类库可以访问 HttpContext 并且通过摆脱 nuget 包“有用”添加的 AppStart 文件夹,我能够在我的类库中使用 InRequestScope。

于 2013-01-29T17:50:02.597 回答