我希望之前没有得到过回复,但我几次搜索了StackOverflow和Google,但无法得到答案。
Neo4jClient通常将行作为某种类型的对象返回,有没有办法将每一行作为一个数组来代替?
在我的情况下,我使用了一个查询,我没有返回特定的对象,而是选择关系中节点的某些属性,例如: (虽然我的查询有点复杂,并返回许多节点类型的许多不同属性):
MATCH (n:User)-[:RELATIONSHIP]->(m:Message)
RETURN n.id, n.name, m.id, m.name, m.subject
这意味着我不能简单地创建一个C#对象来封装此信息,因为该信息与单个对象/节点无关。查询也可能会发生变化,我不想每次都更改对象定义。
答案 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");
}
}