我的SQL语句包含'@'时遇到麻烦
似乎Dapper使用了'@'并抛出异常:“ @ rownum”必须被拒绝。
但这不是Dapper参数。
我需要一些帮助。 这是我的代码:
var sqlStr = @"SELECT
@rownum := @rownum +1 AS rownum,
e.* FROM (SELECT @rownum := 0) r,
(SELECT
f.nickname,
u.charm_value
FROM
user_info u
LEFT JOIN fans_info f ON u.openid=f.openid
ORDER BY
u.charm_value DESC,u.create_time DESC LIMIT 0,500) e ";
return conn.Query<Top500Response>(sqlStr).ToList();
答案 0 :(得分:2)
Dapper将按原样传递它,因为它没有绑定到参数(请参见How do I escape a '@' in a Dapper query?)。
我认为该错误实际上是由MySQL引起的,您需要进行以下设置:
Allow User Variables=True
在连接字符串中(请参见allow-user-variables)