使用Neo4jClient获取Neo4j中关系节点的属性

时间:2014-09-08 08:27:00

标签: c# .net neo4j neo4jclient

我使用Neo4jClient,我希望获得关系属性MATCH (n:Users {id:1})-[r]-(m:Users) RETURN r如何获取具有属性关系的节点,例如:

Node[0]{id:1,name:"Oliver Stone"}
Node[1]{id:2,name:"Charlie Sheen"}
Node[2]{id:3,name:"Martin Sheen"}
Node[3]{id:4,name:"TheAmericanPresident"} 
  

我应该知道,Node [0]和Node [2]之间的属性关系是什么? (属性意味着“关注”或“忽视”)

1 个答案:

答案 0 :(得分:1)

您可以从您正在检索的TypeKey值中获取r

var query = Client.Cypher
    .Match("(n:User)-[r]-(m:User)")
    .Where((UserEntity n) => n.Id == 1)
    .Return((n, r, m) => new
    {
        N = n.As<UserEntity>(),
        M = m.As<UserEntity>(),
        R = r.As<RelationshipInstance<object>>()
    });

var res = query.Results;
foreach (var item in res.ToList())
    Console.WriteLine("({0})-[:{1}]-({2})", item.N.Id, item.R.TypeKey, item.M.Id);

您显然需要更改UserEntity,无论您的类型是什么。