C# Neo4jClient是否将行作为数组而不是对象返回?
我希望这个问题以前没有得到回答,但我搜索了StackOverflow和Google几次,都没有找到答案 Neo4jClient通常将行作为特定类型的对象返回,有没有办法将每一行作为数组取而代之 在我的例子中,我使用的查询不是返回特定对象,而是选择关系中节点的某些属性,例如(尽管我的查询稍微复杂一些,并且返回许多节点类型的不同属性):C# Neo4jClient是否将行作为数组而不是对象返回?,c#,neo4j,neo4jclient,C#,Neo4j,Neo4jclient,我希望这个问题以前没有得到回答,但我搜索了StackOverflow和Google几次,都没有找到答案 Neo4jClient通常将行作为特定类型的对象返回,有没有办法将每一行作为数组取而代之 在我的例子中,我使用的查询不是返回特定对象,而是选择关系中节点的某些属性,例如(尽管我的查询稍微复杂一些,并且返回许多节点类型的不同属性): 这意味着我不能简单地创建一个C#对象来封装该信息,因为该信息与单个对象/节点无关。查询也可能会更改,我不想每次都更改对象定义。您可以返回数组,但显然是一种类型,您可
这意味着我不能简单地创建一个C#对象来封装该信息,因为该信息与单个对象/节点无关。查询也可能会更改,我不想每次都更改对象定义。您可以返回数组,但显然是一种类型,您可能需要将该类型设置为字符串,因为对象不起作用:
var cypher = Client.Cypher
.Match("(n:User)-[:RELATIONSHIP]->(m:Message) ")
.Return<IEnumerable<string>>("[n.id,n.name,m.id,m.name,m.subject]");
这似乎很好用,谢谢。奇怪的是,我最初的想法似乎是可行的,但我在
Return()
方法中没有[]
。你能解释一下为什么需要这些吗?在Neo4j web界面上测试查询时,我不需要它们。web界面能够显示数据,并将其格式化为数组,C#需要将代码定义为实际数组才能得到结果。
var cypher = Client.Cypher
.Match("(n:User)-[:RELATIONSHIP]->(m:Message) ")
.Return<IEnumerable<string>>("[n.id,n.name,m.id,m.name,m.subject]");
var results = cypher.Results;
foreach (var result in results)
{
Console.WriteLine("Result:");
foreach (var res in result)
{
Console.WriteLine("\t{0}", res ?? "null");
}
}