使用Dapper

时间:2018-12-05 21:34:33

标签: c# .net dapper

首先,我对数据库进行了查询,结果很好。

模型具有两个附加属性{Skip,Take},并在执行时填充了值,但是由于以下原因,异步查询失败:

  

@Take附近的语法不正确

我已经测试了一个更简单的查询select * from table where col1 = @Take,并且似乎运行得很好,非常奇怪。

有什么想法吗?

var query = await conn.QueryAsync<ObjectModel>(
@" SELECT TOP @Take * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY ID) AS RoNum, * 
FROM table) as p
where @Skip < RoNum ORDER BY p.ID", model);

1 个答案:

答案 0 :(得分:3)

对于SQL Server,TOP的supported语法如下:

SELECT TOP (@Take) * FROM (SELECT ROW_NUMBER() OVER(ORDER BY ID) AS RoNum, * FROM table) as p WHERE @Skip < RoNum ORDER BY p.ID

您使用的数据库可能受到相同的限制。