Neo4J 客户端 |自定义 return 表达式
Neo4Jclient | Custom return expression
我正在为 C# 使用 neo4jclient。
我想要 return 类似的东西:
EXTRACT(ri in RELS(p)| STARTNODE(ri)) as StartNodes,EXTRACT(ri in RELS(p)| ri) as Relations,EXTRACT(ri in RELS(p)| ENDNODE(ri)) as EndNodes
我如何在 neo4jclient 上流畅地提取 api?
P是路径。
不知道您的完整查询或您要解决的特定 problem/scenario,很难建议完整的查询,但是包含如下内容的链式 return 方法可能有效?
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))")
});
如果您不需要包装器对象,您可以简单地 return IEnumerable<Person>
,例如,
.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 对象。您应该将其替换为您正在使用的任何对象。
我正在为 C# 使用 neo4jclient。
我想要 return 类似的东西:
EXTRACT(ri in RELS(p)| STARTNODE(ri)) as StartNodes,EXTRACT(ri in RELS(p)| ri) as Relations,EXTRACT(ri in RELS(p)| ENDNODE(ri)) as EndNodes
我如何在 neo4jclient 上流畅地提取 api?
P是路径。
不知道您的完整查询或您要解决的特定 problem/scenario,很难建议完整的查询,但是包含如下内容的链式 return 方法可能有效?
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))")
});
如果您不需要包装器对象,您可以简单地 return IEnumerable<Person>
,例如,
.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 对象。您应该将其替换为您正在使用的任何对象。