使用Dapper在SQL语句中使用参数化LIKE子句

时间:2011-09-22 08:52:58

标签: sql dapper

我想使用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解决这个问题?

1 个答案:

答案 0 :(得分:15)

SELECT * FROM Users WHERE Name LIKE @pName + '%'