它是强制性的DbContext在ASP.NET应用程序中注入.InPerRequestScope? [英] Is it mandatory for DbContext to be injected .InPerRequestScope in ASP.NET application?

查看:162
本文介绍了它是强制性的DbContext在ASP.NET应用程序中注入.InPerRequestScope?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经在我的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?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆