我基本上需要做的是here
SELECT t.id, t.key
FROM
(
SELECT id, key, ROW_NUMBER() OVER (ORDER BY key) AS rownum
FROM datatable
) AS t
WHERE t.rownum % n = 0
ORDER BY t.key
但使用Linq to Entities。我无法弄清楚如何。方法ROW_NUMBER未知,并且在where子句中使用索引会给我一个错误。
Query.Where((s, i) => i % n == 0);
编辑:更确切地说
Query.Select((s, i) => new { index = i, data = s } ).Where(s => s.index % n == 0).Select(s => s.data)
到目前为止,对我有用的唯一解决方案是暂时运行SQL(toList
)并在之后对其进行过滤。然而,这显着减慢了我的服务器速度。