2013-02-01 33 views

回答

0

LINQ查詢中,如果對數據集或集合做發生記憶。由於DB將數據存儲在硬盤驅動器中,因此影響不如數據庫級別。

因爲你的RAM比你的硬盤快,所以性能並不明顯。但是將它應用到LINQ還是個不錯的主意

+0

OP不會向Linq詢問對象只有 –

3

你不能用LINQ做SELECT *。生成的查詢始終具有要選擇的所有列名稱。因此,爲了確定該表的列,不會因閱讀表定義而造成延遲。但是,從磁盤讀取所有列數據並通過網絡發送數據會有延遲。所以,如果你只需要在表中的多個列,那麼最好只選擇那些列:

var query = from p in db.Person 
      select new { p.Id, p.Forename, p.Surname }; 

備註:使用LINQ到對象(內存中查詢)你有相反的情況 - 你已經有對象在內存。選擇一組屬性比較慢,因爲應該創建匿名對象,並且它的屬性應該被映射。但是這個操作不使用硬盤或網絡,所以延遲是微不足道的。

+0

他意味着選擇所有列而不是所需的列。 –

+0

這就是我所問的 –