Параметризованное предложение LIKE в операторе SQL с использованием Dapper

Я хочу выполнить следующий запрос с помощью Dapper, который в настоящее время не возвращает ожидаемых результатов (я думаю, что он должен обрабатывать параметр @pName как буквальный текст в одинарных кавычках?):

var q = "SELECT * FROM Users WHERE Name LIKE '@pName%'";

@pName — это параметр, которому я присваиваю значение при выполнении запроса.

Все работает, если я просто создаю SQL, например:

var q = "SELECT * FROM Users WHERE Name LIKE '" + name + "%'";

.. но я бы предпочел использовать параметр, если это возможно.

Я выполняю запрос, используя следующий код:

o = _cn.Query<User>(q, new { pName = new DbString { Value = name, IsFixedLength = false, Length = 25, IsAnsi = true } }).ToList();

Как мне узнать об этом с помощью Dapper?


person marcusstarnes    schedule 22.09.2011    source источник
comment
убедитесь, что вы не забыли избежать предложения like (см. комментарий к ответу)   -  person Sam Saffron    schedule 23.09.2011


Ответы (1)


person    schedule
comment
Однако убедитесь, что вы избегаете предложения like: /tsql-like-escape-clause - person Sam Saffron; 23.09.2011
comment
Спасибо, Сэм. Я не был знаком с этим, поэтому добавлю. - person marcusstarnes; 03.10.2011
comment
Охуел, если я знаю. Кто-то другой сделал это как редактирование. Я откатил его обратно. - person Marcelo Cantos; 13.09.2014