我想使用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。