答案 0 :(得分:2)
假设您正在连接到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();
答案 1 :(得分:0)
类似这样的东西:
var foo = db.Query(
"MySp",
new { parameters },
commandType: CommandType.StoredProcedure)
.ToDictionary(
row => (int) row.Id,
row => (string) row.Name);
带行。是列的名称,而foo是Dictionary类型。