最佳答案
假设您正在连接到 SQL 数据库
public List<IDictionary<string, object>> DapperSelect(string connectionString, string query, object parameters)
{
using (var connection = new SqlConnection(connectionString))
{
var result = connection.Query(query, parameters).ToList();
return result.Select(x => (IDictionary<string, object>)x).ToList();
}
}
我认为您不应该将结果转换为
IDictionary<string, string>
我不认为这有你想要的效果,不是字典中的每个项目都会是一个字符串,它可能是 bool、int、double 等......但如果你坚持,你可以尝试做类似的事情
result.Select(x => ((IDictionary<string, object>)x).ToDictionary(ks => ks.Key, vs => vs.ToString())).ToList();
但我不推荐它。
比所有这些都更好的是,使用 dapper,您始终可以强键入从 SQL 返回的结果,而不是
connection.Query(query, parameters).ToList();
你会写
connection.Query<YOURTYPE>(query, parameters).ToList();
关于c# - 如何将 DapperRow 转换为 Dictionary<string,string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51972188/