几个星期以来,我一直在为此绞尽脑汁……我现在拥有的是:
- 一堆
*Service类 - 所有这些都依赖于
*Repository通过 EF 访问数据库的不同类 - 为了允许单元测试的派生
DbContext被注入到存储库中。(所以我不能using用来处理上下文)
为了正确处理注入的 EF 上下文,我可以InRequestScope()在一个简单的自定义范围内或在一个简单的自定义范围内运行我的依赖树 -InScope(c => new object())在顶层和InParentScope()所有其他级别上。
这两种方法都会在每个请求期间创建和处置大量对象。此外,我们谈论的是单页应用程序,因此 95% 的查询(大约 50 个)将在 2 个请求期间执行,因此InRequestScope()似乎不是一个好主意。此外,这些*Service类没有状态,因此可以InSingletonScope()并且将最小化对象创建的数量。
问题
是否可以在其中包含父类*Service和*Repository类InSingletonScope()并以某种方式将 EF 注入DbContext一个范围内,该范围将在每次访问时返回一个新实例并IDisposable使用 NInject 兑现?
我知道在创建对象时注入了依赖项,但这仍然可以以某种方式管理吗?