雖然只是一個小問題, 但是在學習.NET的路上, 一定會遇到.
回想當時, 我在永X餘集團駐點
Jerry對我提出了疑問
“List<T> 和IQueryable<T>關鍵性的不同在哪?”
我呆了一下
回憶起製作臺灣外X部的網站的時候
=======3個月前=========
原本好好的New List 全部掛掉了
在Code完全沒動的情況下...
仔細追查以後
發現是資料庫匯入正式資料
撈1萬筆資料撈不出來 因爲超過List<T>的限制
一番嘗試後, 改成了IQueryable<T>後就可行了
改完之後, 我向前輩詢問
‘原來IQueryable<T>能存在記憶體的資料比List<T>還多,是不是這樣?’
前輩高深莫測的回答“是的”
========回到現在========
‘IQueryable<T>比較吃效能,他能存的資源比較多。’
我學着前輩,裝做高深莫測。
但是他們關鍵性的不同在哪??
招喚Google大神, 得到了相關資料
http://www.chinaitlab.org/space-144-do-blog-id-15258.html
發現原來, 真的不一樣
IQueryable<T>是在foreach的時候,才向資料庫發送查詢
假設我在View抓資料的當下, 他才向資料庫發送請求
好處 不佔記憶體 壞處 向資料庫多發一次請求