首页 > 代码库 > dapper利用DynamicParameters构建动态参数查询
dapper利用DynamicParameters构建动态参数查询
var age=23;var name="张";
StringBuilder condition = new StringBuilder(); condition.Append("where 1=1"); DynamicParameters p = new DynamicParameters(); if (age>0) { condition.Append(" AND Age>@age"); p.Add("@age", age, System.Data.DbType.String);//对于Add方法,第一个参数可以不带@前缀,源代码里有subString(1),就给处理了 } if (!string.IsNullOrWhiteSpace(name))// { condition.Append(" AND ChineseName like @name"); p.Add("@name", "%"+name+"%", System.Data.DbType.String);//对于like语句,源代码的有bug还是故意不处理? 这里必须拼接% } using (var conn = ConnectionFactory.GetOpenConnection()) { var result= conn.GetList<T>(conditions,parameters); }
以上注意两个问题:
1,对于like语句,拼接%
2,Add方法可以不加@前缀,源代码如下,会处理
static string Clean(string name) { if (!string.IsNullOrEmpty(name)) { switch (name[0]) { case ‘@‘: case ‘:‘: case ‘?‘: return name.Substring(1); } } return name; }
dapper利用DynamicParameters构建动态参数查询
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。