gpt4 book ai didi

dependency-injection - Ninject 缓存注入(inject)的 DataContext?生命周期管理?

转载 作者:行者123 更新时间:2023-12-04 16:30:13 24 4
gpt4 key购买 nike

我的存储库中出现了一系列非常奇怪的错误。未找到或更改行,2 次更新中有 1 次失败......没有任何意义。

就好像我的 DataContext 实例被缓存了......没有任何意义,我正在考虑转行。

然后我注意到 DataContext 实例是使用依赖注入(inject)和 Ninject 传入的(这是我第一次使用 DI ...)。我撕掉了依赖注入(inject),一切都恢复了正常。即刻。

所以依赖注入(inject)是问题所在,但我仍然不知道为什么。我推测 Ninject 正在缓存注入(inject)的 DataContext。

它是否正确?

编辑:

Ninject 绑定(bind)如下:

Bind<IPupilBlockService>().To<SqlPupilBlockService>()
.WithConstructorArgument("db", new dbDataContext());

最佳答案

@Steven 给出了很好的解释,但实际上,Ninject 已经为您提供了一种方法来指定为每个请求生成一个实例:InRequestScope .

Bind<IPupilBlockService>()
.To<SqlPupilBlockService>()
.InRequestScope()
.WithConstructorArgument("db", new dbDataContext());

关于dependency-injection - Ninject 缓存注入(inject)的 DataContext?生命周期管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4517006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com