1. 使用查询方法并获取动态类型:
dynamic account = conn.Query<dynamic>(@"
SELECT Name, Address, Country
FROM Account
WHERE Id = @Id", new { Id = Id }).FirstOrDefault();
Console.WriteLine(account.Name);
Console.WriteLine(account.Address);
Console.WriteLine(account.Country);
如您所见,您获得了一个动态对象,并且您可以访问其属性,只要它们在查询语句中定义良好。
如果你省略.FirstOrDefault()你会得到一个IEnumerable<dynamic>,你可以用它做任何你想做的事情。
2. 使用作为 C# 7.0 的一部分添加的元组类型
var users = dbConnection
.Query<(Guid id, string username)>("SELECT id, username From users")
.AsList();
3. 将每一行转换为IDictionary<string, object>,通过键获取查询值
IEnumerable<dynamic> query = db.Query<dynamic>("SELECT id, username FROM users");
foreach (var rows in query)
{
var fields = rows as IDictionary<string, object>;
var id = fields["id"];
var username = fields["username"];
}