小巧玲珑的参数顶替不工作的顶部

问题描述:

这是我的SQL小巧玲珑的参数顶替不工作的顶部

var maxLimit =100; 
var sql = "Select Top @MaxLimit from Table WHere data [email protected]" 
conn.Query<Result>(sql, new { 
       Id = customerId, 
       MaxLimit = maxLimit 
      }) 

,但我得到了一个系统错误@MaxLimit附近

不正确的语法。

Dapper是否无法参数化Top或Fetch等字段?

在SQL Server中,除数字常量之外的任何top表达式都需要括在括号内。

SELECT TOP (@MaxLimit) FROM ... 
+2

在2005年和更大的仅支持。 (显示我的年龄) – mxmissile

这也适用于较新版本的小巧玲珑:

var sql = "Select Top {=MaxLimit} from Table WHere data [email protected]";