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

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

為什么。包含緩慢?通過主鍵獲取多個實體的最有效方法?

為什么。包含緩慢?通過主鍵獲取多個實體的最有效方法?

POPMUISE 2019-11-26 14:35:26
通過主鍵選擇多個實體的最有效方法是什么?public IEnumerable<Models.Image> GetImagesById(IEnumerable<int> ids){    //return ids.Select(id => Images.Find(id));       //is this cool?    return Images.Where( im => ids.Contains(im.Id));  //is this better, worse or the same?    //is there a (better) third way?}我意識到我可以進行一些性能測試以進行比較,但是我想知道實際上是否有比這兩種方法更好的方法,并且我想對這兩個查詢(如果有)之間的區別(如果有)有所啟發“翻譯”。
查看完整描述

3 回答

?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

第二種選擇肯定比第一種更好。第一個選項將導致ids.Length對數據庫的查詢,而第二個選項可以'IN'在SQL查詢中使用運算符。基本上,它將把您的LINQ查詢變成類似以下SQL的內容:


SELECT *

FROM ImagesTable

WHERE id IN (value1,value2,...)

其中value1,value2等是您的id變量的值。但是請注意,我認為以這種方式可以序列化到查詢中的值的數量可能存在上限。我看看是否可以找到一些文檔...


查看完整回答
反對 回復 2019-11-26
  • 3 回答
  • 0 關注
  • 399 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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