Dapper ORM分页和排序

eri*_*cdc 16 vb.net orm dapper

我试试Dapper ORM.我可以使用以下代码从表中查询数据:

Dim comments As List(Of Comment)
Using conn = New SqlConnection(ConnectionString)
    conn.Open()
    comments = conn.Query(Of Comment)("SELECT * from comments where userid = @commentid", New With {.userid= 1})
End Using

Return View(comments)
Run Code Online (Sandbox Code Playgroud)

我有兴趣学习如何使用Dapper进行分页/排序.EF有"跳过"和"接受"来帮助解决这个问题.我知道微型ORM没有内置但想知道实现这一目标的最佳方法.

mat*_*mc3 19

如果你想跳过并使用Dapper,你可以使用T-SQL.

SELECT *
FROM
(
SELECT tbl.*, ROW_NUMBER() OVER (ORDER BY ID) rownum
FROM comments as tbl
) seq
 WHERE seq.rownum BETWEEN @x AND @y
 AND userid = @commentid
 ORDER BY seq.rownum
Run Code Online (Sandbox Code Playgroud)

  • 是的,还要记住这是db依赖,oracle和mysql有限制和偏移,denali有偏移等等. (2认同)
  • @Sam你的意思是'TOP(@y)`:) (2认同)
  • 你不会做TOP(@pagesize)而不是TOP(@y)吗?"@y"将是一个绝对的rownumber而不是你想要的记录数量? (2认同)