2015-01-07 52 views
0

我有兩個列表,一個是IQueryable,另一個是IEnumerable。從Linq中的IQueryable到實體設置IEnumerable差異

我需要找到它們之間的LINQ到實體一樣,

IQueryable的差集 - IEnumerable的,其中T是一個複雜的類型(類)。

當我嘗試使用IQueryable.Except(IEnumerable)時,它沒有按預期工作。

var listQuery = select query; (listQuery becomes an IQueryable type) 
var listEnumerable = (select query).ToList(); (listEnumerable becomes an IEnumerable type) 
listQuery.Except(listEnumerable); 

(這不會執行預期的操作一樣,試想,listQuery.Count()是110和listEnumerable.Count()是30,所以最終除()應返回80,而是返回整個110)。

任何幫助?

感謝 ManikandanĴ

+1

IQueryable是一個IEnumerable,所以你的問題有點不清楚。 – Shoe

+0

如果可以的話,發佈一些期望的vs實際輸出的例子,以便其他人可以得到你想要的結果。 –

+0

「它沒有按預期工作」。您能否描述發生的意外行爲? –

回答

1

IQuerable的LINQ轉換爲SQL語句並觸發其作爲服務器,而IEnumerable的已存儲結果集,它在內存中,而不是服務器端的所有操作。