实体框架立即超时

时间:2011-10-11 00:28:13

标签: c# .net entity-framework

我对400记录数据库有一个非常简单的查询,但是,如果我在多线程环境中进行查询,它会立即超时,如果我逐个查询它,它可以正常工作。

我没有对连接字符串做任何特殊操作,SQL服务器在本地运行。

每个线程都创建自己的上下文,并在using块中进行查询。

第一次超时大约需要15秒,然后会立即跟踪查询超时。

我试图在CommandTimeout上更改超时但是没有工作,并且即时超时看起来很可疑,我认为将其进一步挖掘是好的。

查询只是按entity.Id匹配。它似乎与查询本身无关,因为我多次更改查询以执行不同的操作。

例外说

  

10/10/2011 3:52:16 T026 D异常 - 基础提供程序在Open上失败。

     

10/10/2011 3:52:16 T026 D内部异常消息 - 超时已过期。操作完成之前经过的超时时间或服务器没有响应。

     

10/10/2011 3:52:16 T026 D at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition,DbConnection storeConnectionToOpen,DbConnection originalConnection,String exceptionCode,String attemptsOperation,Boolean&amp; closeStoreConnectionOnFailure)      在System.Data.EntityClient.EntityConnection.Open()      在System.Data.Objects.ObjectContext.EnsureConnection()      在System.Data.Objects.ObjectQuery 1.GetResults(Nullable 1 forMergeOption)      在System.Data.Objects.ObjectQuery 1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable 1源)      在System.Data.Objects.ELinq.ObjectQueryProvider.b__2 [TResult](IEnumerable 1 sequence) at System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable 1查询,表达式queryRoot)      at System.Data.Objects.CompiledQuery.ExecuteQuery [TResult](ObjectContext context,Object [] parameterValues)      在System.Data.Objects.CompiledQuery.Invoke [TArg0,TArg1,TResult](TArg0 arg0,TArg1 arg1)

是否有任何身体经历过相同或知道答案为什么是即时超时?

提前致谢。

0 个答案:

没有答案