gpt4 book ai didi

c# - Dapper - 如何使用动态对象

转载 作者:可可西里 更新时间:2023-11-01 03:10:09 25 4
gpt4 key购买 nike

我正在使用 Dapper 从 SQL 进行查询,并有一个这样的动态查询:

var returns = conn.Query(dynamicQuery);

然后当我循环浏览结果时,我想知道我正在处理的日期类型是什么,所以我尝试执行以下操作:

foreach (var result in results)
{
MessageBox.Show(result.GetType().ToString());
}

但它总是在 MessageBox 上失败并出现错误 Cannot perform runtime binding on a null reference

如果我改用它:

var returns = conn.Query<object>(dynamicQuery);

然后该命令起作用了,但它给了我一个 Dapper.SqlMapper+DapperRow 对象类型。

如何找到动态变量的类型?

最佳答案

使用动态 api,您应该知道列的形状,即

foreach(dynamic row in query) {
int id = row.Id;
//...
}

但是,每一行还实现了 IDictionary<string, object>如果事情不太清楚:那么投向那个。

或者,如果(评论)您知道有一个日期时间类型的单元格:

var when = conn.Query<DateTime>(...).Single();

关于c# - Dapper - 如何使用动态对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19794497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com