为了账号安全,请及时绑定邮箱和手机立即绑定

为什么。包含缓慢?通过主键获取多个实体的最有效方法?

为什么。包含缓慢?通过主键获取多个实体的最有效方法?

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 关注
  • 376 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信