EF 數組查詢 list.where、Find/FindALL


轉載:https://www.cnblogs.com/hedongnan/p/9513793.html

Linq和where兩種方式的結果是相同的,說明這兩者之間沒有區別,當定義一個查詢后並沒有立即執行查詢而是在執行foreach循環的時候才執行查詢而且是在每一次執行foreach循環的時候去執行查詢,這樣只要數據是變化的結果就會是變化的。但是在一些情況下,這是不可行的。調用擴展方法 ToArray()、ToEnumerable()、ToList()等可以改變這個操作,使返回的結果始終一致,這里是在調用To*這些方法時執行了一次查詢而且不是延遲查詢。FindAll()方法和Linq、where是有區別的,FindAll()不是延遲加載或者說延遲查詢,當定義一個查詢后就立即查詢出所有符合條件的數據保存在變量中。

 

where是臟讀。

where.to*之后直接讀取數據到緩存中。

Find/FindAll是直接讀取數據到緩存中。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM