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



我想使用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得到这个?

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

我想在这里添加另一个可能的解决方案:

var results = cn.Query("SELECT * FROM Table WHERE Column LIKE @value", new { value = value + "%" });

通配符在字符串var本身内部,然后我们在SQL中引用该var。

最新更新