由於先前遇到Entity Framework會有Cache的狀況,而注意到IQueryable以及IEnumerable。
大部分操作LINQ皆預設採用IQueryable的形式進行,以獲得對於資料庫調教後的查詢效能。
基本上兩者的差異如下:
IEnumberable為將整份完整資料載入應用程式記憶體中進行操作。
IQueryable則為類似組SQL字串的模式,將操作轉換為對應SQL字串,直到實際取得資料時才從資料庫中取回資料。(可以把他想成它就是在做LINQ語法與查詢字串之間的轉換)