实体框架中的using语句是否会导致性能影响?

时间:2014-02-28 06:35:43

标签: performance entity-framework using

实体框架中的using语句如何导致性能影响?

在我们的项目中,我们使用实体框架并执行db操作,如下所示。

`void method()
{
   using(var context= new context())
   {
     //some code....
   }
}`

为了提高性能,我们删除了using语句并在构造函数中初始化了上下文并最终关闭了上下文。

这会改善表现吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

Diego Vega(实体框架高级SDE负责人)在Do I always have to call Dispose() on my DbContext objects?文章中说,在常见情况下(如果您不手动打开数据库连接),您不需要调用Dispose在DbContext上。

同样调用Dispose不会给您带来显着的性能影响,因为它与查询数据库相比非常快。在上下文中调用Dispose时,连接应该已经关闭。没有非托管资源可以释放,因此只需快速内存操作。查询数据库涉及网络数据传输,在服务器上执行查询,从服务器上的驱动器读取数据,创建实体和映射查询结果。我建议在有和没有处理上下文的情况下测试你的课程表现,我认为你不会发现任何差异。