編輯2:
在終於可以將兩者相互配置後,似乎在我的情況下.AsQueryable()比Expression.Compile()稍快。AsQueriable()或表達式<T> .Compile()?
原題:
我已經實現了一些數據庫表的高速緩存(如List<T>
),我需要用相同的Expression<Func<T, bool>>
查詢作爲對Table<T>
本身查詢時我會用。
什麼是這些最快/最好的方法:
List<T>.AsQueryable().FirstOrDefault(Expression<Func<T, bool>>)
或
List<T>.FirstOrDefault(Expression<Func<T, bool>>.Compile())
?
編輯: 更改從哪裏來FirstOrDefault,因爲這是我使用的方法。當我寫這個問題時,我想我有點累了。 FirstOrDefault會檢查每個項目,比如Where,還是實際停止在第一次擊中(如果有的話)?
從哪裏切換FirstOrDefault是否改變任何東西? My List <>僅僅是一個Table <>。ToList(),所以它們只是SQL中表的副本。查詢非常簡單,只需將輸入參數與列值字符串比較結合起來即可。 – 2009-11-02 09:26:19