首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何为Dapper查询动态创建参数

如何为Dapper查询动态创建参数
EN

Stack Overflow用户
提问于 2012-02-28 20:12:04
回答 2查看 55.2K关注 0票数 95

我有一本价值字典,例如"Name":"Alex“

有没有办法将它作为查询的参数传递给Dapper?

这是一个展示我想要做的事情的例子。

代码语言:javascript
复制
IDictionary<string, string> args = GetArgsFromSomewhere();
string query = "select * from people where Name = @Name";
var stuff = connection.Query<ExtractionRecord>(query, args);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-28 20:17:12

是:

代码语言:javascript
复制
var dbArgs = new DynamicParameters();
foreach(var pair in args) dbArgs.Add(pair.Key, pair.Value);

然后在args的位置传递dbArgs

代码语言:javascript
复制
var stuff = connection.Query<ExtractionRecord>(query, dbArgs);

或者,您可以编写自己的类来实现IDynamicParameters

请注意,如果您从一个对象开始(通常使用dapper的方法),您也可以将此模板与DynamicParameters一起使用作为起点:

代码语言:javascript
复制
var dbArgs = new DynamicParameters(templateObject);
票数 156
EN

Stack Overflow用户

发布于 2018-10-09 19:13:16

还可以使用ExpandoObject作为查询的参数,而不是使用特定于Dapper的类DynamicParameters

代码语言:javascript
复制
ExpandoObject param = new ExpandoObject();

IDictionary<string, object> paramAsDict = param as IDictionary<string, object>;
paramAsDict.Add("foo", 42);
paramAsDict.Add("bar", "test");

MyRecord stuff = connection.Query<MyRecord>(query, param);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9481678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档