管理EntityConnection生命周期

ker*_*vin 7 .net c# asp.net entity-framework entityconnection

管理EntityContext生命周期有很多问题,

例如,在LINQ to Entities中实例化上下文

我得出的结论是,实体上下文应该被视为一个工作单元,因此不能重复使用.大.

但是在进行一些加速我的数据库访问的研究时,我遇到了这篇博文...

改善实体框架性能

该帖子称,EF文件表现不佳相对于其他框架往往是由于EntityConnection对象被每一个新的时间创建的EntityContext需要的对象.

为了测试这一点,我在Global.asax.cs Application_Start()中手动创建了一个静态EntityConnection .

然后我使用语句将我的所有上下文转换为

using( MyObjContext currContext = new MyObjeContext(globalStaticEFConnection)
{
   ....
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,到目前为止,这似乎已经加快了一点点没有任何错误.

但这样安全吗?

使用应用程序范围的静态EntityConnection是否会引入竞争条件?

最好的问候,凯文

Cra*_*ntz 7

记录EntityConnection不是线程安全的.我认为你可以集中它们,但你不能为Web应用程序使用单个静态连接,因为会涉及很多线程.