通過主鍵選擇多個實體的最有效方法是什么?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變量的值。但是請注意,我認為以這種方式可以序列化到查詢中的值的數量可能存在上限。我看看是否可以找到一些文檔...
- 3 回答
- 0 關注
- 399 瀏覽
添加回答
舉報
0/150
提交
取消