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

时间:2014-06-05 09:34:25

标签: c# neo4j neo4jclient

我希望之前没有得到过回复,但我几次搜索了StackOverflow和Google,但无法得到答案。

Neo4jClient通常将行作为某种类型的对象返回,有没有办法将每一行作为一个数组来代替?

在我的情况下,我使用了一个查询,我没有返回特定的对象,而是选择关系中节点的某些属性,例如: (虽然我的查询有点复杂,并返回许多节点类型的许多不同属性):

MATCH (n:User)-[:RELATIONSHIP]->(m:Message) 
RETURN n.id, n.name, m.id, m.name, m.subject

这意味着我不能简单地创建一个C#对象来封装此信息,因为该信息与单个对象/节点无关。查询也可能会发生变化,我不想每次都更改对象定义。

1 个答案:

答案 0 :(得分:3)

您可以返回数组,但显然属于一种类型,并且您可能需要将该类型作为字符串,因为对象不起作用:

var cypher = Client.Cypher
    .Match("(n:User)-[:RELATIONSHIP]->(m:Message) ")
    .Return<IEnumerable<string>>("[n.id,n.name,m.id,m.name,m.subject]");

您的返回类型必须为IEnumerable<T>,其中T(最有可能)为string

var results = cypher.Results;
foreach (var result in results)
{
    Console.WriteLine("Result:");
    foreach (var res in result)
    {
        Console.WriteLine("\t{0}", res ?? "null");
    }
}