我希望能够编写一个具有动态参数列表的查询(取决于是否设置了参数)。
我想在使用dapper的oracle数据库上执行查询。
示例代码:
示例代码:
var sqlParams = new List<object>();
var sqlBuilder = new StringBuilder();
sqlBuilder.Append("SELECT * FROM EXAMPLE WHERE 1 = 1 ");
if (!string.IsNullOrEmpty(aParam))
{
sqlBuilder.Append(" AND A LIKE ?");
}
if (!string.IsNullOrEmpty(bParam))
{
sqlBuilder.Append(" AND B LIKE ? ");
}
var sql = sqlBuilder.ToString();
return this.Connection.Query<Equipment>(
sql,
new { aParam, bParam } // ??
).ToList();
aParam, bParam
?能否用ExpandoObject
替换new { aParam, bParam }
?我不想硬编码aParam, bParam
。我想通过循环来添加它们。但似乎Query<Equipment>()
不支持将ExpandoObject
作为其第二个参数。 - kkuillaDynamicParameters
,或者直接传递两个参数(dapper会忽略任何明显没有使用的参数)。 - Marc Gravell