我们查询了大约 40 个与客户相关的数据字段。查询通常会返回大量记录,比如多达 20,000 条。我们只想在前 500 个结果周围使用 say。然后,我们只希望能够一次翻阅它们 10 个。

LINQ 是否跳过并为此采取了合理的方法?使用这种方法与以其他方式手动执行相比是否存在任何潜在的性能问题?

最佳答案

没有 Take()Skip() 使用 TOP 子句生成 SQL。
Take()Skip 使用 ROW_NUMBER() 生成 SQL,如 here 所示。

此外,我建议使用出色的 LINQPad 工具或 LINQ to SQL 日志记录来检查生成的查询。

关于linq - LINQ skip & take 有不错的性能吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3665031/

10-16 14:19