在 C# 中将字典转换为匿名对象?
Convert Dictionary to anonymous object in c#?
我有一个网站 API 我正在用 C# 构建。此网站 API 用作查询 SQL 数据库的前端。我使用 SqlKata 作为执行查询的引擎。生成 WHERE 子句时,SqlKata 文档说明如下:
多个字段
如果要针对多个字段过滤查询,请传递表示 col/values.
的对象
var query = new Query("Posts").Where(new {
Year = 2017 ,
CategoryId = 198 ,
IsPublished = true,
});
我希望能够避免对 WHERE 子句进行硬编码,而是将其基于传入的查询字符串。我的想法是将每个查询字符串名称和值添加到字典中,然后以某种方式在 SqlKata .Where() 子句中使用该字典的值。我想也许我可以将 Dictionary 转换为所需的匿名对象,但我无法让它工作。关于如何做到这一点的任何想法?所以我的 url 可能是:
https://webapi.com.au/api?store=120&name=james
词典:
商店=120
姓名=詹姆斯
查询:
var query = new query("Posts").Where(anonObject)
(anonObject 将是 {store=120,name=james})
您不需要匿名对象。查看 SqlKata 文档,您可以通过遍历字典来构建查询,如下所示:
//Assuming the dictionary is something like Dictionary<string, object>
var query = new Query("Posts");
foreach(var element in dictionary)
{
query = query.Where(element.Key, element.Value);
}
var result = query.Get();
注意:之前从未听说过 SqlKata,所以这只是查看文档。
我有一个网站 API 我正在用 C# 构建。此网站 API 用作查询 SQL 数据库的前端。我使用 SqlKata 作为执行查询的引擎。生成 WHERE 子句时,SqlKata 文档说明如下:
多个字段
如果要针对多个字段过滤查询,请传递表示 col/values.
的对象var query = new Query("Posts").Where(new {
Year = 2017 ,
CategoryId = 198 ,
IsPublished = true,
});
我希望能够避免对 WHERE 子句进行硬编码,而是将其基于传入的查询字符串。我的想法是将每个查询字符串名称和值添加到字典中,然后以某种方式在 SqlKata .Where() 子句中使用该字典的值。我想也许我可以将 Dictionary 转换为所需的匿名对象,但我无法让它工作。关于如何做到这一点的任何想法?所以我的 url 可能是:
https://webapi.com.au/api?store=120&name=james
词典: 商店=120 姓名=詹姆斯
查询: var query = new query("Posts").Where(anonObject)
(anonObject 将是 {store=120,name=james})
您不需要匿名对象。查看 SqlKata 文档,您可以通过遍历字典来构建查询,如下所示:
//Assuming the dictionary is something like Dictionary<string, object>
var query = new Query("Posts");
foreach(var element in dictionary)
{
query = query.Where(element.Key, element.Value);
}
var result = query.Get();
注意:之前从未听说过 SqlKata,所以这只是查看文档。