Dapper 参数替换不适用于 Top
Dapper Parameter replace not working for Top
这是我的sql
var maxLimit =100;
var sql = "Select Top @MaxLimit from Table WHere data =@Id"
conn.Query<Result>(sql, new {
Id = customerId,
MaxLimit = maxLimit
})
但是我收到系统错误
incorrect syntax near @MaxLimit.
Dapper 是否无法参数化 Top 或 Fetch 等字段?
在 SQL 服务器中,除了数字常量之外的任何 top
表达式都需要放在括号中。
SELECT TOP (@MaxLimit) FROM ...
较新版本的 dapper literal replacements 在这种情况下效果很好:
var sql = "Select Top {=MaxLimit} from Table WHere data = @Id";
这是我的sql
var maxLimit =100;
var sql = "Select Top @MaxLimit from Table WHere data =@Id"
conn.Query<Result>(sql, new {
Id = customerId,
MaxLimit = maxLimit
})
但是我收到系统错误
incorrect syntax near @MaxLimit.
Dapper 是否无法参数化 Top 或 Fetch 等字段?
在 SQL 服务器中,除了数字常量之外的任何 top
表达式都需要放在括号中。
SELECT TOP (@MaxLimit) FROM ...
较新版本的 dapper literal replacements 在这种情况下效果很好:
var sql = "Select Top {=MaxLimit} from Table WHere data = @Id";