我的价值观例如名称一本字典:亚历克斯
有没有办法通过这个以精致小巧的作为参数的查询?
下面是一个例子,显示了我想做的事情。
的IDictionary<字符串,字符串>的args = GetArgsFromSomewhere();
查询字符串=SELECT * FROM人,其中名称= @Name;
VAR的东西= connection.Query< ExtractionRecord>(查询,参数);
解决方案
是:
VAR dbArgs =新DynamicParameters();
的foreach(VAR对在args)dbArgs.Add(pair.Key,pair.Value);
然后通过 dbArgs
在的args
:
VAR的东西= connection.Query< ExtractionRecord>(查询,dbArgs);
另外,你可以写自己的类实现 IDynamicParameters
。
请注意,如果你是从一个对象(与短小精悍通常的做法)开始,你也可以使用这个模板 DynamicParameters
为出发点:
VAR dbArgs =新DynamicParameters(templateObject);
I have a dictionary of values Eg "Name": "Alex"
Is there a way to pass this to Dapper as arguments for a query?
Here is an example showing what I want to do.
IDictionary<string, string> args = GetArgsFromSomewhere();
string query = "select * from people where Name = @Name";
var stuff = connection.Query<ExtractionRecord>(query, args);
解决方案
Yes:
var dbArgs = new DynamicParameters();
foreach(var pair in args) dbArgs.Add(pair.Key, pair.Value);
Then pass dbArgs
in place of args
:
var stuff = connection.Query<ExtractionRecord>(query, dbArgs);
Alternatively, you can write your own class that implements IDynamicParameters
.
Note that if you are starting from an object (the usual approach with dapper), you can also use this template with DynamicParameters
as a starting point:
var dbArgs = new DynamicParameters(templateObject);