将动态创建的SQL参数作为匿名类型传递给Dapper

5

将动态创建的SQL参数发送到Dapper。

当向Dapper发送多个参数时,我通常会执行以下操作:

return connection.Query<Customer>(sql.ToString(), 
    new
    {
        Status = status,
        ZipCodes = zipCodes,
        Types = type
    }).ToList();

然而,我需要找到一种方法,根据我拥有的键值对列表动态生成这些参数。我希望能够遍历列表并动态创建要传递给dapper的参数。

你需要一个 Dictionary<string,object> 对吧?因为有名称和值(们)? - Shyju
@Shyju 正确。我一直像上面那样将我的参数传递给了 Dapper。但如果要根据逻辑传递参数,该怎么办呢?肯定还有其他方法。 - Blake Rivell
请展示您拥有的数据类型(请在问题中添加) - Shyju
@Shyju 假装它是一个键值对字典。我需要将它作为参数传递给 Dapper。 - Blake Rivell
你是否有不同版本的查询,因为你想传递可变数量的参数,对吗? - Shyju
1个回答

13

这是我如何修改你现有的代码。在这个片段中,"Params"代表你的字典。

DynamicParameters dbParams = new DynamicParameters();
dbParams.AddDynamicParams(params);
return connection.Query<Customer>(sql.ToString(),dbParams).ToList();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接