Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Neo4jClient是否将行作为数组而不是对象返回?_C#_Neo4j_Neo4jclient - Fatal编程技术网

C# Neo4jClient是否将行作为数组而不是对象返回?

C# Neo4jClient是否将行作为数组而不是对象返回?,c#,neo4j,neo4jclient,C#,Neo4j,Neo4jclient,我希望这个问题以前没有得到回答,但我搜索了StackOverflow和Google几次,都没有找到答案 Neo4jClient通常将行作为特定类型的对象返回,有没有办法将每一行作为数组取而代之 在我的例子中,我使用的查询不是返回特定对象,而是选择关系中节点的某些属性,例如(尽管我的查询稍微复杂一些,并且返回许多节点类型的不同属性): 这意味着我不能简单地创建一个C#对象来封装该信息,因为该信息与单个对象/节点无关。查询也可能会更改,我不想每次都更改对象定义。您可以返回数组,但显然是一种类型,您可

我希望这个问题以前没有得到回答,但我搜索了StackOverflow和Google几次,都没有找到答案

Neo4jClient通常将行作为特定类型的对象返回,有没有办法将每一行作为数组取而代之

在我的例子中,我使用的查询不是返回特定对象,而是选择关系中节点的某些属性,例如(尽管我的查询稍微复杂一些,并且返回许多节点类型的不同属性):


这意味着我不能简单地创建一个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");
    }
}