Dapper 查询 Return 错误

Dapper Query Return Error

我正在使用 Dapper 1.38.0.0 版开发 MVC Web API。我写这段代码

 var param = new Dapper.DynamicParameters();
 foreach (Match match in Regex.Matches("Select Top @count * From tblCourse", @"(?<!\w)@\w+"))
 {
     string key = match.Value;
     string value = HttpContext.Current.Request.QueryString[key.Replace("@", null)];
     param.Add(key, value);
 }

 result = con.Query<dynamic>("Select Top @count * From tblCourse", param);

但是结果行有错误。

Additional information: Incorrect syntax near '@count'.

我该如何解决这个问题?谢谢

试试这个

result = con.Query<dynamic>("Select Top (@count) * From tblCourse", param);

当通过参数

提供值时,

Top 需要在括号内

TOP @param

在 SQL 服务器中不合法。 2个选项:

Select Top (@count) * From tblCourse

或者

Select Top {=count} * From tblCourse

首先是SQL-服务器的表示方式。第二个是 dapper 特定的功能,它将整数值(仅:它不适用于字符串)直接注入查询。如果值通常相同,则第二个通常会表现更好。当然,第二个你也需要一个不同的正则表达式。