Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET中每个请求的实体框架对象上下文?_C#_Asp.net_Web Applications_Entity Framework 4.1_Objectcontext - Fatal编程技术网

C# ASP.NET中每个请求的实体框架对象上下文?

C# ASP.NET中每个请求的实体框架对象上下文?,c#,asp.net,web-applications,entity-framework-4.1,objectcontext,C#,Asp.net,Web Applications,Entity Framework 4.1,Objectcontext,每个请求使用一个ObjectContext是否被认为是一种好的做法?我了解到这些对象应该是短期的,并且实例化成本不高,但这是否会使每个请求都需要一个对象?如果是,是否有任何模式可以正确实现这一点?是的,将ObjectContext/DbContext与每个HttpRequest的生命周期结合起来是一种公认的方法。我已在另一份答覆中提供 无论如何,最好将这些终身管理留给国际奥委会图书馆。著名的是 更新: 要处理上下文,可以使用Global.asax中的Application\u EndReques

每个请求使用一个ObjectContext是否被认为是一种好的做法?我了解到这些对象应该是短期的,并且实例化成本不高,但这是否会使每个请求都需要一个对象?如果是,是否有任何模式可以正确实现这一点?

是的,将ObjectContext/DbContext与每个HttpRequest的生命周期结合起来是一种公认的方法。我已在另一份答覆中提供

无论如何,最好将这些终身管理留给国际奥委会图书馆。著名的是

更新:
要处理上下文,可以使用Global.asax中的
Application\u EndRequest
方法。以下代码未经测试,但您会明白:

protected virtual void Application_EndRequest()
{
    var key = "MyDb_" + HttpContext.Current.GetHashCode().ToString("x")
                      + Thread.CurrentContext.ContextID.ToString();
    var context = HttpContext.Current.Items[key] as MyDbContext;

    if (context != null)
    {
        context.Dispose();
    }
}

简短回答:是的。更多细节(模式…):这是webforms还是MVC?在webforms中使用IOC似乎有点复杂。由于我有一个小的应用程序,我想我将使用您所指的示例中建议的解决方案。那么现在,有没有办法在请求终止后强制处理请求范围的上下文对象?@kfc更新了我的答案。