这是我的sql
var maxLimit =100;
var sql = "Select Top @MaxLimit from Table WHere data =@Id"
conn.Query<Result>(sql, new {
Id = customerId,
MaxLimit = maxLimit
})
但是我收到系统错误
@MaxLimit附近的语法不正确。
Dapper是否无法参数化Top或Fetch等字段?
答案 0 :(得分:27)
在SQL Server中,除数字常量之外的任何top
表达式都必须在括号中。
SELECT TOP (@MaxLimit) FROM ...
答案 1 :(得分:2)
这也适用于较新的Dapper版本:
var sql = "Select Top {=MaxLimit} from Table WHere data =@Id";