在NPoco中处理任意查询

尼克·科德(Nick Coad)

我感觉好像在这里遗漏了一些明显的东西,如何通过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一个NPocoDatabase对象。

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

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

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

但是我无法弄清楚访问/使用结果的语法,而且一切似乎都很笨拙,我敢肯定我一定以错误的方式处理了这个问题。

总结一下:

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

阿德里安·法丘(AdrianFâciu)

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

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

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

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

之后,您可以简单地将对象转换为所需的数据类型。(例如,使用Convert方法

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

npoco 的这个查询怎么可以是动态的

来自分类Dev

SPARQL中的任意路径长度查询

来自分类Dev

Linq查询中的异常处理

来自分类Dev

Linq查询中的异常处理

来自分类Dev

PetaPoco / NPoco-Poco中的计算属性

来自分类Dev

如何在C ++中处理任意维向量?

来自分类Dev

在AWK中可移植地处理任意参数

来自分类Dev

使用POST调用REST应用程序中的任意处理

来自分类Dev

在查询中处理德比中的日期

来自分类Dev

如何在Restler GET请求中接受任意查询参数?

来自分类Dev

在Warp中处理HTTP GET查询参数

来自分类Dev

在实体框架查询中处理空日期

来自分类Dev

在Play Framework 2.1.4中处理空查询

来自分类Dev

如何在Django中处理空查询?

来自分类Dev

在Warp中处理HTTP GET查询参数

来自分类Dev

在Oracle查询中处理-找不到记录-

来自分类Dev

如何在oracle中处理以下查询

来自分类Dev

在mysql查询中处理空时间

来自分类Dev

在 Postgres 中处理多个并发读取查询

来自分类Dev

Rails查询任意列

来自分类Dev

SQL中逻辑查询处理中的GROUP BY阶段返回什么?

来自分类Dev

SQL中逻辑查询处理中的GROUP BY阶段返回什么?

来自分类Dev

在LINQ中处理TimeSpan,其中在查询中首次引用TimeSpan

来自分类Dev

处理任意大小的输入流

来自分类Dev

在MongoDB中按字段查询,可以在文档中任意深度嵌套

来自分类Dev

执行任意字符串时如何处理Lua中的错误?

来自分类Dev

SQL查询以获取字符串中任意位置包含a和b的名称

来自分类Dev

限制Doctrine查询中的根实体数量,但允许任意数量的连接实体

来自分类Dev

在http-conduit中处理HTTP查询参数