亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Linq上使用IQueryable

在Linq上使用IQueryable

FFIVE 2019-10-23 12:44:25
什么是使用IQueryable在LINQ的背景下?它是否用于開發擴展方法或任何其他目的?
查看完整描述

3 回答

?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊


從用戶的角度來看,主要區別在于,當您使用IQueryable<T>(與正確支持事物的提供程序一起)使用時,可以節省大量資源。


例如,如果要使用許多ORM系統處理遠程數據庫,則可以選擇以兩種方式從表中獲取數據,一種返回IEnumerable<T>,一種返回IQueryable<T>。例如,假設您有一個“產品”表,并且想要獲取所有成本大于25美元的產品。


如果您這樣做:


 IEnumerable<Product> products = myORM.GetProducts();

 var productsOver25 = products.Where(p => p.Cost >= 25.00);

這里發生的是,數據庫加載了所有產品,并將它們通過導線傳遞到您的程序。然后,您的程序將過濾數據。本質上,數據庫執行SELECT * FROM Products,然后將所有產品返回給您。


IQueryable<T>另一方面,有了合適的提供商,您可以做到:


 IQueryable<Product> products = myORM.GetQueryableProducts();

 var productsOver25 = products.Where(p => p.Cost >= 25.00);

代碼看起來相同,但是區別在于執行的SQL將是SELECT * FROM Products WHERE Cost >= 25。


從您作為開發人員的觀點來看,這看起來是一樣的。但是,從性能的角度來看,您只能通過網絡返回2條記錄,而不是20,000條...。


查看完整回答
反對 回復 2019-10-23
  • 3 回答
  • 0 關注
  • 907 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號