2011-01-21 20 views
0

是否有任何與使用IQueryable相關的性能問題?
此外,如果我使用遊標,而不是使用IQueryable(是更好的)。
IQueryable vs IEnumerable vs IList
我使用MongoDB作爲我的數據庫。謝謝使用IQueryable的缺點!

+1

您在性能方面最大的問題可能是MongoDB,在您開始擔心.Net之前,我會先看看那裏。 – Lazarus 2011-01-21 11:58:07

回答

4

我不知道MongoDB的C#結合的作品,但如何描述它通常是如何工作的:

當使用IQueryable表達式樹構造,然後再翻譯成一個格式的數據庫可以理解,然後在執行數據庫服務器。

與以數據庫可理解的格式直接編寫查詢相比,這通常具有很小的開銷(構建表達式樹並對其進行轉換)。

使用IEnumerable使用代表,而不是表達式。它需要迭代整個數據集,然後使用Linq-To-Objects進行過濾。這太慢了。

4

這些只是不同的接口,並且由於接口不包含任何實現,所以對於使用的性能無關緊要。

當您遍歷值時,將使用實際類的枚舉數,而不管您使用哪個接口來訪問它。