为什么不存在ElementAt的异步版本?
本文关键字:版本 异步 不存在 ElementAt 为什么 | 更新日期: 2023-09-27 18:01:24
我需要获取一个实体随机如下所示,但ElementAtAsync不存在。造成这种情况的原因是什么?有什么解决办法?
var index = random.Next(maxValue:count);
var song = await Context.Songs.ElementAt(index);
如果您只需要数据库中的一个元素,并且您已经有了计数,您可以这样做:
var index = random.Next(maxValue:count);
var songQuery = await Context.Songs
.OrderyBy(x => x.Something)
.Skip(index)
.Take(1)
.ToListAsync();
var song = songQuery.SingleOrDefault(); // this works due to the Take(1) above
我不知道为什么它不存在,但一个解决方案可以像下面这样。
var song await = Context.Songs.OrderBy(o => o.Id)
.Skip(index)
.FirstOrDefaultAsync();
这个Linq查询将导致相同的结果,但是底层查询可能有点不同。