我正在使用neo4jclient进行C#。
我想返回类似的内容:
EXTRACT(RELS(p)| STARTNODE(ri)中的ri)作为StartNodes,EXTRACT(RELS(p)| ri中的ri)作为关系,EXTRACT(RELS(p)| ENDNODE(ri)中的ri)作为EndNodes
如何在neo4jclient上提取流畅的api?
P是一条路径。
答案 0 :(得分:2)
在不知道您正在尝试解决的完整查询或特定问题/场景的情况下,很难建议完整的查询,但包含以下内容的链式返回方法可能有用吗?
var query = client.Cypher
.Match("p = [your match statement]")
.Return(p => new
{
StartNodes = Return.As<IEnumerable<Node<Person>>>("extract(ri in rels(p) | startnode(ri))"),
Relations = Return.As<IEnumerable<RelationshipInstance<Person>>>("extract(ri in rels(p) | ri)"),
EndNodes = Return.As<IEnumerable<Node<Person>>>("extract(ri in rels(p) | endnode(ri))")
});
如果您不需要包装器对象,只需返回IEnumerable<Person>
,e,g,
.Return(p => new
{
StartNodes = Return.As<IEnumerable<Person>>("extract(ri in rels(p) | startnode(ri))"),
Relations = Return.As<IEnumerable<Person>>("extract(ri in rels(p) | ri)"),
EndNodes = Return.As<IEnumerable<Person>>("extract(ri in rels(p) | endnode(ri))")
});
请注意,上面的代码假设您正在尝试将Neo4j的响应反序列化为Person
类型的POCO对象。您应该将其替换为您正在使用的任何对象。