我的代码看起来像这样;
using (IDbConnection cnn = new SqlConnection(GetConnectionString()))
{
var result = cnn.QuerySingle(sql, parameters);
return result;
}
它在类内的方法中,但这无关紧要。据说 QuerySingle 返回一个动态类型,但我以前从未使用过这个类型。当我调试此代码时,它返回的内容如下所示;
{{DapperRow, Tcode = 'eeeee', Hashedpw = 'NF886jMDl5imyMj0ThDIxA==', Salt = 'Z+HHq6Rt60FPnAf80Lg4Dg=='}}
我应该如何阅读本文?它们是键值对,因为背后的逻辑不起作用,它不像列表或数组那样工作。我完全迷失了,不知道这是什么回报。我只需要值,而不是dapperrow,tcode,hashedpw和salt。所以基本上,我需要的回报是
['eeeee', 'NF886jMDl5imyMj0ThDIxA==','Z+HHq6Rt60FPnAf80Lg4Dg==']
谁能帮我?
当前您使用的是弱类型QuerySingle()
,它将始终返回键值对结果。如果只想检索值,则应使用像这样的强类型QuerySingle()
。
var result= connection.QuerySingle<TYPE>(sql, parameters);
编辑:如果我让你做对
例如,您可以定义类
public class SomeClass
{
public string Salt {get;set;}
public string TCode {get;set;}
public string Hashedpw {get;set;}
}
你可以像这样在代码中使用它QuerySingle<SomeClass>
如果你在这种情况下返回多个结果,显然你必须像这样使用QuerySingle<List<SomeClass>>()
。
希望这对您有所帮助。
查看此链接以获取有关 QuerySingle 的帮助
如果您创建另一个类,则如下所示...
public class TestClass
{
public string Tcode { get; set; }
public string Hashedpw { get; set; }
public string Salt { get; set; }
}
。并将您的查询单调用更改为类似这样的东西......
var result = cnn.QuerySingle<TestClass>(sql, parameters);
。像这样的电话...
Debug.WriteLine(result.Tcode);
。将导致eeeee
从调试窗口出来
这有帮助吗?