实体框架中的using语句如何导致性能影响?
在我们的项目中,我们使用实体框架并执行db操作,如下所示。
`void method()
{
using(var context= new context())
{
//some code....
}
}`
为了提高性能,我们删除了using语句并在构造函数中初始化了上下文并最终关闭了上下文。
这会改善表现吗?
提前致谢。
答案 0 :(得分:0)
Diego Vega(实体框架高级SDE负责人)在Do I always have to call Dispose() on my DbContext objects?文章中说,在常见情况下(如果您不手动打开数据库连接),您不需要调用Dispose在DbContext上。
同样调用Dispose不会给您带来显着的性能影响,因为它与查询数据库相比非常快。在上下文中调用Dispose时,连接应该已经关闭。没有非托管资源可以释放,因此只需快速内存操作。查询数据库涉及网络数据传输,在服务器上执行查询,从服务器上的驱动器读取数据,创建实体和映射查询结果。我建议在有和没有处理上下文的情况下测试你的课程表现,我认为你不会发现任何差异。