有关管理 EntityContext 生命周期的问题已经有很多了,
我得出结论:应将实体上下文视为工作单元,因此不应重复使用。太好了。
但是,在为加速数据库访问做一些研究时,我发现了这篇博客文章...
该文章认为,与其他框架相比,EF 的性能差常常是因为每次需要新的 EntityContext 对象时都会创建 EntityConnection 对象。
为了测试这一点,我在 Global.asax.cs 中的 Application_Start() 中手动创建了一个静态的 EntityConnection。
然后,我将所有上下文 using 语句转换为:
using( MyObjContext currContext = new MyObjeContext(globalStaticEFConnection)
{
....
}
据我所知,这似乎加快了一些速度,而且没有出现任何错误。
但是这样做安全吗?
使用应用程序范围内的静态 EntityConnection 是否会引起竞争条件?
祝好, Kervin