首先,我对数据库进行了查询,结果很好。
模型具有两个附加属性{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);
答案 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
您使用的数据库可能受到相同的限制。