我有一个小的C#应用程序来查询Neo4j数据库。查询工作正常,但我无法将整数数组转换为适当的C#列表类型。它们似乎应该在一个合适的List / Array /等中。在C#方面。
这是我运行的查询 - 它返回正确的结果,但我不够聪明,无法将返回的列表部分转换为正确的C#list-type对象。以下是正在运行的代码:
using (var driver = GraphDatabase.Driver("bolt:validURL, AuthTokens.Basic("username", "password")))
// using (var session = driver.Session())
{
var result = session.Run("MATCH (c:Climate) WHERE c.koppen = 'BSh' RETURN c.koppen AS koppen, c.counties AS counties");
foreach (var record in result)
{
var koppen = record["koppen"].As<string>();
var counties = record["counties"];
}
}
}
}
}
记录[counties]是一个整数列表 - 所以看起来我应该很容易将它放入一个我可以迭代的C#列表对象中。我需要这样做才能处理每个县并显示结果。 C#对我来说很新,所以感谢你帮助我连接这两种语言!
编辑:没有回复,所以我尝试了一种新的方法 - 简化事情,我不再返回koppen值 - 只是列表县(这就是问题所在)。我在Neo4j手册中找到了一些代码,并尝试了它:public List<int> GetCounties()
{
using (var driver = GraphDatabase.Driver("bolt://validURL", AuthTokens.Basic("username", "password")))
using (var session = driver.Session())
{
return session.ReadTransaction(tx =>
{
var result = tx.Run("MATCH (c:Climate) WHERE c.koppen = 'BSh' RETURN c.counties");
var a = result.Select(Record => Record[0].As<int>()).ToList();
return a;
});
}
}
}
现在我得到了一个例外: 发生了System.InvalidCastException 的HResult = 0x80004002 Message =无法转换类型为&#39; System.Collections.Generic.List`1 [System.Object]&#39;输入&#39; System.IConvertible&#39;。 来源= 堆栈跟踪:
在以toList()语句结尾的行上发生异常。很抱歉,我不理解Neo4j列表结果与C#lists / arrays / etc之间需要进行的转换。我很乐意尝试任何建议!