Search code examples
dapper

Is there anyway to iterate through a Dapper DynamicParameters object?


I need to make a generic logger to record certain insert/update statements so that my testers can verify the data being inserted is correct.

My first thought was that I would just use a function that accepted DynamicParameters and I would foreach through the DynamicParameters to generate a string to list the parameter's name and value and make them easier to read for the testers.

Unfortunately, Dapper.DynamicParameters does not contain a public definition for "GetEnumerator"

Here is basic example of what I was hoping to do:

string myFormattedListofParameters = "";
foreach (var p in myDynamicParameters)
{
myFormattedListofParameters += p.Name + "=" + p.Value.ToString();
}

Solution

  • Try:

                var sb = new StringBuilder();
                foreach (var name in p.ParameterNames)
                {
                    var pValue = p.Get<dynamic>(name);
                    sb.AppendFormat("{0}={1}\n", name, pValue.ToString());
                }