Sé que esto es una cuestión de edad (como , 5 años) pero yo estaba luchando con lo mismo. La respuesta completa está en los comentarios a la otra respuesta, pero pensé que ofrecería un ejemplo completo aquí.
string query = "SELECT * FROM MyTableName WHERE Foo = @Foo AND Bar = @Bar";
Dictionary<string, object> dictionary = new Dictionary<string, object>();
dictionary.Add("@Foo", "foo");
dictionary.Add("@Bar", "bar");
var results = connection.Query<MyTableName>(query, new DynamicParameters(dictionary));
O, para ser completamente dinámico, puede crear un método de este tipo, que se llevará a cualquier modelo, cualquier consulta, y cualquier conjunto de parámetros de consulta:
public static IEnumerable<T> Get<T>(string query, Dictionary<string, object> dictionary)
{
IEnumerable<T> entities = connection.Query<T>(query, new DynamicParameters(dictionary));
return entities;
}
Y luego llamar a este método:
var results = Get<MyTable>(query, dictionary)
Tenga en cuenta que puede hacer 'nuevos DynamicParameters (dictionary)' y funcionará muy bien. – asgerhallas
@asgerhallas que podría no haber sido cierto en febrero, pero sí: tiene razón; eso es ciertamente cierto ahora –
para que los nuevos DynamicParameters (diccionario) funcionen, el diccionario debe ser un IEnumerable> , por ejemplo Dictionary . El diccionario no funcionó. –