2010-03-16 97 views
9

我正在做一個針對視圖的基本選擇。不幸的是,結果可能會很慢,我會間歇性地收到超時錯誤。我怎樣才能延長超時時間?如何增加Linq2Entities的超時時間?

使用.NET 3.5,SQL Server 2000中,Linq2Entities

我使用的是非常基本的查詢List<MyData> result = db.MyData.Where(x.Attribute == search).ToList();

固定的查詢,以便它在數據庫方面更快的是不是一個不錯的選擇。

準確的錯誤:「Timeout expired。超時時間已過,但操作完成或服務器沒有響應。」

更新:我寧願只更改它爲這一個查詢。

+0

嗯,爲什麼不修複查詢,而不是?你可能錯過了一個索引。 – 2010-03-16 13:10:01

+1

「修復查詢,以便在數據庫端更快,這裏不是一個選項。」 - 這就是爲什麼我把這條線放在那裏。在這種情況下這是不可能的。 – 2010-03-16 13:19:39

回答

9

您可以在您的connection string中設置超時時間。

編輯(新): 事實證明,有兩種不同的超時概念。連接超時用於確定是否可以建立連接。對象上下文的CommandTimeout屬性控制命令的超時。因此,只需將其設置爲較高值,並且不應以任何方式影響短時間運行的查詢。

+0

這是唯一的方法嗎?我寧願只是爲了這個查詢而改變它。在其他查詢中,我寧願讓它儘快超時,因爲它們速度非常快,而長時間運行意味着無法連接。 – 2010-03-16 13:07:12

+0

@Russell Steen:我用另一個選項更新了我的答案。 – 2010-03-16 13:11:39

+0

@Russell Steen:我已經更新了我的答案。 – 2010-03-16 13:17:05