使用 Linq Skip Take 进行传统 SQL 查询,而不是使用 RowNum

Posted

技术标签:

【中文标题】使用 Linq Skip Take 进行传统 SQL 查询,而不是使用 RowNum【英文标题】:using Linq Skip Take for Traditional SQL Query rather using RowNum 【发布时间】:2013-07-02 12:19:22 【问题描述】:

我有一个字符串中的 SQL 查询,并且正在使用使用 DataAdapter 的传统方式执行。

我正在尝试将分页添加到现有逻辑。我如何将Skip take 添加到 SQL 字符串中。

我知道对 LINQ 查询使用 Skip 和其他 linq 方法。但是是否可以用于字符串格式的 SQL 查询。

如果是,我如何在不向查询中添加 RowNum 的情况下执行此操作,而不是使用跳过并采取。

Eg :

String sqlQuery = Select * from tablename ;
SqlDataAdapter com = new SqlDataAdapter(sqlQuery, Connection);

我如何在这个 SQL 查询中使用 Linq 方法进行分页而不是使用 ROWNUM

*我不确定我是否重复了这个问题,但我无法识别关键字

谢谢

【问题讨论】:

mysql还是t-sql? ***.com/questions/1744802/… 【参考方案1】:

我如何在这个 SQL 查询上使用 Linq 方法进行分页而不是 ROWNUM

你不能。您正在发出直接 SQL - 此处不涉及 LINQ。 LINQ 会将用 C# 编写的查询转换为 SQL,但您无法开始将 LINQ 位添加到现有 SQL 查询中。您应该决定是实际上要编写 SQL,还是要使用 LINQ。然后一次只做一个。

(当然,您可以在同一个项目中同时使用这两者 - 但对于单个查询,您不能混合和匹配。)

【讨论】:

感谢@jon 动态形成 SQL 查询,所以我会使用 ROWNUM。任何使用 rownum 实现的最佳方法都可以重定向到! @user2067567:听起来你应该问一个不同的问题——那时你实际上只是在问 SQL,与 C# 或 LINQ 无关。 同意@jon!看看我能不能找到任何:)谢谢+1解决方案

以上是关于使用 Linq Skip Take 进行传统 SQL 查询,而不是使用 RowNum的主要内容,如果未能解决你的问题,请参考以下文章

Linq:使用Take和Skip实现分页

Linq 到实体 Skip() 和 Take()

LinQ中Skip()方法和Take()方法的使用

Linq 使用skip和take分页

Linq中Take与Skip的使用

Linq 使用skip和take分页