Как использовать Dapper с mysql, когда инструкция sql содержит @ - PullRequest
0 голосов
/ 03 мая 2019

У меня проблема с тем, что мой оператор SQL содержит '@'

Похоже, что Даппер использовал '@' и выдал исключение: "@ 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();

1 Ответ

2 голосов
/ 03 мая 2019

Dapper пропустит это как есть, поскольку оно не привязано к параметру (см. Как мне избежать "@" в запросе Dapper? ).

Я думаю, что ошибка на самом деле происходит из MySQL, и вам нужно установить следующее:

Allow User Variables=True

в строке подключения (см. allow-user-variable )

...