c# - 获取表中所有记录的样本

标签 c# .net linq entity-framework linq-to-entities

我有一个表,里面有几百万条记录。我想进行抽样,返回表中的每条第 n 条记录。我当前的解决方案如下所示:

myQuery.Where((rec, index) => index % interval == 0);

但是 Linq to Entities 不支持这一点并抛出异常。我也试过这个:

myQuery.Select((rec, index) => new { Index = index, Record = rec })
       .Where(x => x.Index % interval == 0);

但 Linq to Entities 也不支持。

即使它确实以这种方式工作,它看起来也不是很优雅。还有其他方法吗?

最佳答案

这里有类似的 Linq to SQL 讨论 LINQ to SQL Every Nth Row From Table , 检查一下。

我认为 SQL 才是正确的选择。在 EF 中,您可以将 SQL 放在 DefiningQuery

关于c# - 获取表中所有记录的样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8567400/

相关文章:

c# - 读取请求的内容 - ReadAsStringAsync()

c# - Linq 从对象属性列表中获取新列表,该对象属性列表本身就是一个列表

c# - XPath 与反序列化 : which one is better in performance for read operations

c# - 通过其中的元素查询特定数据的最佳方式是什么?

同一个表上的 Linq 多重联接

c# - 向breececontroller发送大的json数据失败

c# - 自定义按钮鼠标离开事件

c# - 如何在 .NET 位图上使用 GDI+ 模糊效果?

c# - 无法序列化我的 `ObservableDictionary<TKey,TValue>` 类

c# - 使用 LINQ 覆盖或忽略 C# 中未声明的实体