在实体框架中查询第n行

斯文·比德

我想从每个实体框架的表中查询随机行。

目前我能想到的最好的解决方案是从表中获取总计数,然后使每个C#函数获得一个在计数范围内的随机数,然后查询该随机行数。

我的问题是我无法弄清楚如何直接查询每个实体框架的特定行号。我想避免需要查询整个表,然后从那里选择行号。

还是我在这里有一个普遍的误解,还有更简单的方法吗?

阿卡什·卡瓦(Akash Kava)
// DO NOT USE THIS FOR MORE THEN 100 ROWS
var randomRecord = foos.OrderBy( x=> SqlFunctions.Rand() ).FirstOrDefault();

但是这种方法的效率不如

// USE THIS FOR MORE THEN 100 ROWS
var random = Math.Random(foos.Count());

var randomRecord = foos.OrderBy( x=> x.id ).Skip( random ).FirstOrDefault();

对于数据库而言,查询计数要比实际通过数千条记录通过RANDOM执行SORT的开销要少得多。由于RANDOM当然没有被索引,因此排序将花费很长时间。因此,避免使用第一种方法,最好使用第二种方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

实体框架DbContext在查询中

来自分类Dev

实体框架查询单个查询中的相关实体

来自分类Dev

实体框架:在LINQ查询中更新

来自分类Dev

Sum()在实体框架查询中返回null

来自分类Dev

实体框架7中的多对多查询

来自分类Dev

在实体框架查询中处理空日期

来自分类Dev

实体框架中的Linq查询错误

来自分类Dev

实体框架Linq查询中的日期比较

来自分类Dev

实体框架查询中缺少排序

来自分类Dev

实体框架中的复杂DateTime查询

来自分类Dev

在实体框架中查询今天的记录

来自分类Dev

实体框架中的自动查询结果

来自分类Dev

在实体框架查询中链接包含语句

来自分类Dev

实体框架6中的复杂子查询

来自分类Dev

实体框架模型中的其他查询

来自分类Dev

使用 Linq 在实体框架中查询嵌套/相关实体

来自分类Dev

使用联接防止实体框架查询中的 SELECT N+1 问题

来自分类Dev

实体框架:查询缓慢

来自分类Dev

实体框架的子查询

来自分类Dev

实体框架选择查询

来自分类Dev

复杂实体框架查询

来自分类Dev

实体框架选择查询

来自分类Dev

慢查询实体框架

来自分类Dev

实体框架的子查询

来自分类Dev

实体框架查询SPA

来自分类Dev

实体框架的查询语言

来自分类Dev

实体框架中的可查询Linq查询差异

来自分类Dev

实体框架查询嵌套查询

来自分类Dev

实体框架中LINQ查询中AsNoTracking的范围