在Entity Framework v1中的每个方法中创建ObjectContext的性能成本

dev*_*dev 13 performance entity-framework

在ASP.NET MVC应用程序中使用.NET 3.5 SP1时,ObjectContext可以在一个Http Request OR或SINGLE方法上具有生命周期.

using (MyEntities context =  new MyEntities ())
{
//DO query etc
}
Run Code Online (Sandbox Code Playgroud)

在每个请求的每个方法VS中创建ObjectContext的性能成本是多少?

谢谢.

Cra*_*ntz 17

创建上下文的成本非常低.但是,使用新上下文意味着您没有来自先前上下文的任何缓存查询.您可以通过视图生成或CompiledQuery在某种程度上解决这个问题.另请参阅实体框架应用程序的性能注意事项

另一方面,长时间保持上下文意味着您正在跟踪越来越多的状态信息,这些信息具有自己的性能成本.

但是,在我看来,上下文中最重要的代价是代码复杂化.使用多个上下文往往会导致令人困惑的代码.所以我尝试每组相关操作使用一个上下文,例如处理单个HTTP请求.


Kri*_*erA 1

底层模型是小还是大、简单还是复杂?初始化和使用新对象上下文的成本随着模型的大小和复杂性而增加。如果您有少量实体,通常可以忽略不计。如果您有数百个实体,那么这可能会很重要。

请参阅:
http://oakleafblog.blogspot.com/2008/08/entity-framework-instantiation-times.html

http://blogs.msdn.com/adonet/archive/2008/06/20/how-to-使用-a-t4-template-for-view- Generation.aspx