管理EntityConnection一生 [英] Managing EntityConnection lifetime

查看:183
本文介绍了管理EntityConnection一生的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

已经有许多问题在管理的的EntityContext 的一生中,

There have been many question on managing EntityContext lifetime,

例如。 <一href="http://stackoverflow.com/questions/813457/instantiating-a-context-in-linq-to-entities">http://stackoverflow.com/questions/813457/instantiating-a-context-in-linq-to-entities

我已经到了实体方面应该被视为一个单位-的工作,因此不重用的结论。太好了。

I've come to the conclusion that the entity context should be considered a unit-of-work and therefore not reused. Great.

不过,在做一些研究,对于加快我的数据库访问,我遇到了这个博客帖子...

But while doing some research for speeding up my database access, I ran into this blog post...

<一个href="http://blogs.msdn.com/dparys/archive/2009/04/06/improving-entity-framework-performance.aspx">Improving实体框架的性能

该帖子称,EF的糟糕表现相对于其他框架往往是由于的 EntityConnection 的对象,被每一次创造了一个新的的EntityContext 的目标是必要的。

The post argues that EFs poor performance compared to other frameworks is often due to the EntityConnection object being created each time a new EntityContext object is needed.

要测试这一点,我手动创建一个静态EntityConnection中的的Global.asax.cs 的的Application_Start()。

To test this I manually created a static EntityConnection in Global.asax.cs Application_Start().

然后我转换我的所有情况下的使用的语句

I then converted all my context using statements to

using( MyObjContext currContext = new MyObjeContext(globalStaticEFConnection)
{
   ....
}

这似乎已经加快了一点东西,没有任何错误,到目前为止,据我可以告诉。

This seems to have sped things up a bit without any errors so far as far as I can tell.

但是,这是安全的吗?

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

Does using a applicationwide static EntityConnection introduce race conditions?

最好的问候, Kervin

Best regards, Kervin

推荐答案

<一个href="http://msdn.microsoft.com/en-us/library/system.data.entityclient.entityconnection.aspx">EntityConnection是记录将不是线程安全的。我想你可以集中他们,但你不能使用Web应用程序的单一,静态连接,因为会涉及多个线程。

EntityConnection is documented to be not thread-safe. I think you could pool them, but you cannot use a single, static connection for a Web application, as there will be many threads involved.

这篇关于管理EntityConnection一生的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆