J'ai des problèmes lorsque mon instruction SQL contient le '@'
Il semble que Dapper ait utilisé le '@' et levé une exception: "@ rownum" doit être refusé.
Mais ce n'est pas un paramètre Dapper.
Je ai besoin d'aide. Voici mon code:
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();
Dapper le transmettra tel quel, car il n'est pas lié à un paramètre (voir Comment puis-je échapper un '@' dans une requête Dapper? ).
Je pense que l'erreur provient en fait de MySQL, et ce que vous devez faire est défini:
Allow User Variables=True
dans la chaîne de connexion (voir allow-user-variables )