objectContext生活范围

时间:2011-12-20 07:54:34

标签: asp.net-mvc-3 entity-framework

今天我遇到了一个我无法解释原因的问题,所以我认为更好的方法是通过stackoverflow分享它。

好吧,我有一个带有.net实体的mvc 3应用程序,我试图在db中插入一个巨大的字符串,这就产生了一个sqlExeepton“字符串或二进制数据将被截断”。好的,我将在稍后修复它:)。

在此问题之后,我尝试用单个值更新同一个实体(事实上我增加了一个计数器)并再次获得相同的异常。这有点麻烦。

如果我在每个方法的末尾处理objectContext,或者如果在每个方法的开头创建一个新的objectContext,那么问题就会解决。

我无法理解的是,如果objectContext在类而不是方法中初始化,它将如何反应

public class MyController : BaseController {

    private static EFUnitOfWork efUnitOfWork = new EFUnitOfWork();
    Products_Repository productsRepos = new Products_Repository(new EFRepository<Products>(), efUnitOfWork); 
..
//methods
..
}

提前致谢

1 个答案:

答案 0 :(得分:0)

  

如果在类中初始化了objectContext会如何反应?

只要您的控制器类存在,您将拥有一个存在的实例。这将匹配一个http请求的生命周期,也就是编写Web应用程序时的推荐生命周期。

因此,您可以获得每个请求的新上下文,并且不必担心存储在旧上下文对象中的旧状态。