使用Neo4j C#Client返回多个父节点的子节点
编辑: 我的图形包含两种节点类型:父节点和子节点。这些关系可以是新的父关系{R=p.As(),N=u.As()}); var results=q1.results.ToList(); 我试图在这里使用“展开”来获取每一行的标题,然后找到它的子行,并返回运行查询的所有行的结果集。如果我只使用列表中的一项,它就可以工作。对于列表中的多个项目,我不断得到异常“对象引用未设置为对象的实例”使用Neo4j C#Client返回多个父节点的子节点,c#,.net,neo4j,graph-databases,neo4jclient,C#,.net,Neo4j,Graph Databases,Neo4jclient,编辑: 我的图形包含两种节点类型:父节点和子节点。这些关系可以是新的父关系{R=p.As(),N=u.As()}); var results=q1.results.ToList(); 我试图在这里使用“展开”来获取每一行的标题,然后找到它的子行,并返回运行查询的所有行的结果集。如果我只使用列表中的一项,它就可以工作。对于列表中的多个项目,我不断得到异常“对象引用未设置为对象的实例” 有人能在此建议一种合适的方法吗?即使只有2个元素,您也能得到空引用吗?列表中的每一项是否都有一个“子项”或确实作
有人能在此建议一种合适的方法吗?即使只有2个元素,您也能得到空引用吗?列表中的每一项是否都有一个“子项”或确实作为父项存在?还有,
节点列表是什么?我们这里说的是匿名类型的数组吗?还是标题:“Node1”
指的是实际类型?@ChrisSkardon我将其更改为仅包含标题的列表。查询用于列表中的多个项目,但输出仅返回一行结果。我希望针对每个“行”运行的每个查询都以列表的形式输出。你能用你的实际代码编辑你的问题吗?我想我拥有你所拥有的,并且它对我来说是正常的,所以我只想在我给出答案之前看看你在做什么。@ChrisSkardon编辑了这个问题
var query= client.Cypher
.Match("(parent:PARENT)")
.Return((parent) => parent.As<PARENT>().Title)
.Results.ToList();
List<string> titlesofallParents= new List<string>();
foreach (var item in query)
{
titlesofallParents.Add(item);
}
var q1= client.Cypher
.Unwind(titlesofallParents,"titleItem")
.Match("(p:PARENT{Title: titleItem})<-[*]-(u)")
.Return((p, u) => new { R = p.As<Node<string>>(), N = u.As<Node<string>>()});
var results = q1.Results.ToList();