我感觉好像在这里遗漏了一些明显的东西,如何通过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运行查询以返回不同(任意)类型的列,然后访问和使用这些值?
您走在正确的轨道上。该查询仅返回一行,因此您可以简单地从结果中获取第一个字典:
result = db.Query<Dictionary<string, object>>(queryString)
var dictionary = result.First();
然后,您可以使用查询中的名称获取对象:
dictionary["MOST_RECENT_ORDER_DATE"]
dictionary["TOTAL_AMT_OF_ORDERS"]
之后,您可以简单地将对象转换为所需的数据类型。(例如,使用Convert方法)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句