我有一个长度 > 3000 的整数数组int[] ids
。我想从数据库表中获取前 15 条记录,顺序为Array.IndexOf(ids, recordId)
.
我在做:
IQueryable<Record> records = from p in db.Records.Where(p => ids.Contains(p.Id))
select p;
records = records.ToList()
.OrderBy(p => Array.IndexOf(ids, p.Id)).AsQueryable().Take(15);
这是非常低效的,因为超过 3000 条记录被加载到内存中,而我只需要 15 条。
有没有办法解决这个问题?谢谢你。
一些现有的帖子: