2012-12-18 43 views
0

使用EF 4.1,我試圖用5萬查詢大數據表。我已經設定相對較高的超時的DbContext爲:使用Entityframework 4.1或更高版本查詢大數據時遇到超時

​​

但仍顯得不夠沒有,但是,我給(10000),它的工作原理。我沒有這裏的服務器端分頁選項。知道如何擺脫這種超時的情況真是太好了。

難道是造成執行或存儲庫模式或EF無法處理大數據?

回答

1

你已經採取了壞的路徑有...

它是從數據庫加載所有數據的壞習慣。
如果你實現了服務器端分頁,或者你不需要填充只是實現按需加載功能,那會更好。

我dought用戶將查看所有數據,因此沒有必要從數據庫中獲取它。

最好是花更多的額外小時/天,但作出正確選擇。

而作爲實踐表明你將有大約性能的客戶/用戶/用戶抱怨,你就會有正確重寫孔的東西。

你最好三思而後行,不要偷懶;)

+0

+1「你會從有關性能的消費者/客戶/用戶抱怨,你就會有正確重寫孔事」 –

+0

感謝建議。我認識到服務器端分頁可以解決我的情況中僅有的5萬條數據中的問題,我必須根據類別對它們進行分組(例如,類別A將有100行,並且需要顯示數量總和),在唯一類別的數量不超過20行。由於我沒有設計數據庫,我沒有選擇將這個平面數據表分解爲關係模型。 – webKite

0

EF可以處理大量的數據。

這只是一個配置,因爲你已經想通了,多數「連接」有(您還在ADO.net使用超時)。 默認情況下,它被設置爲30秒,並且您有能力更改它

0

確定EF可以在當前情況下處理的最大數據非常困難。我會建議選擇延遲加載,但它會不會完全解決問題。如果我在你的地方,我會嘗試使用一些緩存功能,因爲在你的情況下分頁也是不可行的。

這些只是我的建議沒有解決方案。

相關問題