问题描述
我已经在我的ASP.NET MVC3门户使用Ninject IoC容器。每当我在被注入实体框架的DbContext
PerThread
的范围,我的数据是不一致的,变化不会得到displayd一段时间我做了修改后的实体,等等。
I have been using Ninject IoC container in my ASP.NET MVC3 portal. Whenever I've been injecting Entity Framework DbContext
in PerThread
scope, my data wasn't consistent, changes would not get displayd for some time after I've made changes to Entities, etc.
在我切换IOC配置来解决我的的DbContext
实例的全新副本为每个请求( PerRequestScope()
),所有的问题都不见了。
After I've switched the IoC configuration to resolve a fresh copy of my DbContext
instance for each request (PerRequestScope()
), all the problems were gone.
因此,它是绝对强制使用PerRequest注入策略在MVC3应用程序?
So is it absolutely mandatory to use PerRequest injection strategy in MVC3 applications?
推荐答案
是的,这是强制性的。
您的问题是这样的:
- 线程A加载一个实体
- 线程B修改了实体
- 要线程A接下来的请求使用第一次请求缓存的实体,忽视了变化
这篇关于它是强制性的DbContext在ASP.NET应用程序中注入.InPerRequestScope?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!