Search code examples
c#dapper

Passing dynamically created SQL Parameters into dapper as an anonymous type


Sending dynamically created SQL Parameters into dapper.

I usually do the following when sending multiple params to dapper:

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

However I need to figure out a way to dynamically generate these parameters based on a list of key value pairs that I will have.

I want to be able to loop through a list and create the params to pass into dapper dynamically.


Solution

  • Here's how I would modify what you've got. In this snippet, Params is your dictionary.

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