依赖注入 – 单例中依赖注入数据连接的最佳方法
发布时间:2020-12-14 05:02:08 所属栏目:百科 来源:网络整理
导读:我的应用程序中有一些“缓存”对象,通过依赖注入(Ninject)获得IRepository(自定义存储库模式契约).这些对象仅使用存储库一次,但它们具有刷新功能,强制所有者自行刷新.它们是单例,只创建一次,ManualResetEvent确保在加载之前阻止所有请求. IRepositories是基
我的应用程序中有一些“缓存”对象,通过依赖注入(Ninject)获得IRepository(自定义存储库模式契约).这些对象仅使用存储库一次,但它们具有刷新功能,强制所有者自行刷新.它们是单例,只创建一次,ManualResetEvent确保在加载之前阻止所有请求.
IRepositories是基于EF CodeFirst的,所以可以简单地确保连接关闭并永远保持对DbContext的引用吗? 我已经禁用了代理和延迟加载,所以…可以从缓存对象的根目录到数百个这些缓存的POCO实体的长引用? 干杯. 解决方法
我们参考Julie Lerman的评论,
? http://msdn.microsoft.com/en-us/magazine/ee532098.aspx?sdmr=JulieLerman 建议是有几个/许多较小的上下文,并且在Web场景的情况下,每个调用创建一个新的上下文. 虽然她在实体框架和AppFabric中写了关于二级缓存的文章. 随着时间的推移,上下文将包含许多对象,并且性能将相应地下降. 我个人的建议,我不能说是最好的做法,但是从关心表现的人那里,每个电话的小范围内容是一个坚实的长期妥协. 您可以通过以下方式管理永久DBContext,以便从上下文中删除未使用的对象.或者使用带有事件的缓存库来执行此操作.不是一个小任务. 我会对您最终选择的解决方案感兴趣.请发布. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |