gpt4 book ai didi

c# - 在 NPoco 中处理任意查询

转载 作者:太空宇宙 更新时间:2023-11-03 20:03:34 26 4
gpt4 key购买 nike

我觉得我在这里遗漏了一些明显的东西,我如何通过 NPoco 运行查询并检索任意数量的可能不同类型的值作为结果。

示例

假设我有一个看起来像这样的表:

|-------------------|------------|
| ID | AMOUNT | DATE |
|-------------------|------------|
| 1 | 2300 | 01/02/2014 |
| 2 | 400 | 03/02/2014 |
| 3 | 1200 | 06/02/2014 |
| 4 | 950 | 06/02/2014 |
|-------------------|------------|

我想使用以下 (MSSQL) 查询此表:

SELECT
MAX(DATE) AS MOST_RECENT_ORDER_DATE, SUM(AMOUNT) AS TOTAL_AMT_OF_ORDERS
FROM
ORDERS

所以我想我会使用类似于下面的代码,其中 db 是一个 NPoco Database 对象。

var result = db.Query(<query string>);

问题是 NPoco 的查询方法需要一个类型参数,我不确定要给它什么。问题是这两个值实际上有不同的类型,一个是 DateTime,另一个是 int。我尝试使用以下内容:

List<Dictionary<string, object>> result;
result = db.Query<Dictionary<string, object>>(queryString).ToList();

但我无法弄清楚访问/使用结果的语法,这一切看起来都很笨拙,我敢肯定我一定是用错了方法。

总结一下:

我如何使用 NPoco 运行查询返回不同(任意)类型的列,然后访问和使用这些值?

最佳答案

您走在正确的轨道上。该查询仅返回一行,因此您可以简单地从结果中获取第一个字典:

result = db.Query<Dictionary<string, object>>(queryString)
var dictionary = result.First();

然后您可以使用查询中的名称获取对象:

dictionary["MOST_RECENT_ORDER_DATE"]
dictionary["TOTAL_AMT_OF_ORDERS"]

之后您可以简单地将对象转换为您想要的数据类型。 (例如使用 Convert methods )

关于c# - 在 NPoco 中处理任意查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25616871/

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