Normally Dapper queries allow me to do something like this:
string query = "SELECT * FROM some_table WHERE some_value = @MyParameter";
var parameter = new {MyParameter = 20};
connection.Query(query,parameter);
or like this
string query = "SELECT * FROM some_table WHERE some_value = @MyParameter";
var parameter = new DynamicParameters();
parameter.Add("@MyParameter",20);
connection.Query(query,parameter);
This doesn't work with an OdbcConnection because named parameters are not supported. Instead a "?" can be used to mark parameters:
string query = "SELECT * FROM some_table WHERE some_value = ?";
var parameter = new {MyParameter = 20};
connection.Query(query,parameter);
or
string query = "SELECT * FROM some_table WHERE some_value = ?";
var parameter = new DynamicParameters();
parameter.Add("@MyParameter",20);
connection.Query(query,parameter);
This works fine for single parameter, but I cannot find any source telling me what happens with multiple parameters. I've tested the following:
string query = "SELECT * FROM some_table WHERE some_value > ? AND some_value < ?";
var parameter = new {Min= 20, Max =30};
connection.Query(query,parameter);
or
string query = "SELECT * FROM some_table WHERE some_value > ? AND some_value < ?"
var parameter = new DynamicParameters();
parameter.Add("Min",20);
parameter.Add("Max",30);
connection.Query(query,parameter);
And it works just fine, but I'd like to be certain that the order in which I create anonymous object properties or the order in which I add parameters to the DynamicParameter is guaranteed to be preserved.