C# 返回一个节点和它';使用Neo4jClient将关系和连接的节点合并到一个具体的类中
我正在尝试将.Net中的Neo4j与Neo4jClient一起使用。我试图找到填充以下具体C#类的最佳方法: 也适用于其他关系类型,例如已婚 我目前有以下查询,我想获得一个特定的person节点,以及它的关系(即相关的person节点和关系类型的字符串,可以是关系类型或关系的值),填充PersonData。我目前可以很容易地填充Person,但我不知道如何填充关系C# 返回一个节点和它';使用Neo4jClient将关系和连接的节点合并到一个具体的类中,c#,asp.net,neo4j,cypher,neo4jclient,C#,Asp.net,Neo4j,Cypher,Neo4jclient,我正在尝试将.Net中的Neo4j与Neo4jClient一起使用。我试图找到填充以下具体C#类的最佳方法: 也适用于其他关系类型,例如已婚 我目前有以下查询,我想获得一个特定的person节点,以及它的关系(即相关的person节点和关系类型的字符串,可以是关系类型或关系的值),填充PersonData。我目前可以很容易地填充Person,但我不知道如何填充关系 var data = client.Cypher .Match("(p:Person)-[r*1..1]-&
var data = client.Cypher
.Match("(p:Person)-[r*1..1]->(per:Person)")
.Where((Person p) => p.Id == 3)
.Return((p, per) => new PersonData
{
Person = p.As<Person>()
})
.Results;
var data=client.Cypher
.Match(“(p:Person)-[r*1..1]->(per:Person)”)
.其中((人员p)=>p.Id==3)
.Return((p,per)=>新个人数据
{
Person=p.As()
})
.结果;
这个PersonData的填充是我必须在查询之外做的事情,还是可以在return语句中完成
我还有一个问题,这个查询返回id为3的节点两次,我不知道为什么
非常感谢。这适用于您的类-只要您从
List
更改为IEnumerable
var query = gc.Cypher.Match("(p:Person {Id:2})")
.OptionalMatch("(p)-[r]->(p2:Person)")
.With("p, {Relationship: type(r), Relative: p2} as relations")
.Return((p, relations) => new PersonData
{
Person = p.As<Person>(),
Relations = relations.CollectAs<Relation>()
});
var query=gc.Cypher.Match(((p:Person{Id:2})”)
.OptionalMatch(“(p)-[r]->(p2:Person)”)
.With(“p,{Relationship:type(r),Relative:p2}as relations”)
.Return((p,relations)=>newpersondata
{
Person=p.As(),
Relations=Relations.CollectAs()
});
谢谢@Chris,很高兴在Graph Connect看到你:)
var data = client.Cypher
.Match("(p:Person)-[r*1..1]->(per:Person)")
.Where((Person p) => p.Id == 3)
.Return((p, per) => new PersonData
{
Person = p.As<Person>()
})
.Results;
var query = gc.Cypher.Match("(p:Person {Id:2})")
.OptionalMatch("(p)-[r]->(p2:Person)")
.With("p, {Relationship: type(r), Relative: p2} as relations")
.Return((p, relations) => new PersonData
{
Person = p.As<Person>(),
Relations = relations.CollectAs<Relation>()
});