3

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

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

4

2 回答 2

6

Take()Skip()生成 SQL usingTOP子句。

Take()with使用如下所示生成SkipSQL 。ROW_NUMBER()

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

于 2010-09-08T06:24:22.650 回答
2

是的,如果您使用的是 SQL Server 2005+,它将生成使用该ROW_NUMBER()函数来提高分页效率的 SQL(与Scott 在此博客文章中使用的 SQL 不同)。

于 2010-09-08T06:15:20.607 回答