我有以下linq擴展方法,它返回一個IEnumerable。這意味着,在linq語句的其餘部分完成之前,這段代碼最終會敲擊數據庫。可以重構這個linq語句來返回一個IQueryable嗎?
是否有可能重構這個,所以它返回一個IQueryable呢?
public static IEnumerable<TSource> WhereIf<TSource>
(this IEnumerable<TSource> source, bool condition,
Func<TSource, bool> predicate)
{
return condition ? source.Where(predicate) : source;
}
錯誤:無法將類型'System.Collections.Generic.IEnumerable'隱式轉換爲'System.Linq.IQueryable '。存在明確的轉換(您是否缺少演員?) –
2010-02-14 05:26:52
您究竟在哪裏得到該異常?鑑於以上是擴展方法,如果'source'已經不是IQueryable,您應該無法在第一時間調用該方法... –
jrista
2010-02-14 05:40:43
編譯錯誤,不是例外。 – 2010-02-14 10:19:16