2017-07-03 108 views
0

我如何获得与Neo4jClient库节点的标签neo4jclient得到节点标签

这是我跑的代码,并返回以下错误

您所提供的回报表达式使用方法除了由ICypherResultItem定义的 ,Neo4jClient.Cypher.All或 Neo4jClient.Cypher.Return。返回表达式需要 我们可以将其转换为Cypher,然后发送到服务器,执行 。您不能使用方法链,LINQ到对象或其他这样的构造。如果要运行客户端逻辑以在.NET中重构数据,请在查询执行 之后使用Select呼叫,例如.Return(...).Results.Select(r => ...)。这种技术 在服务器端(在Neo4j中,通过Cypher)与客户端(在.NET中)之间保持明确的分隔。

我的代码

public List<string> getLabels(MyEvent targetEvent) 
{ 
    List<string> result = 
         this.client.Cypher.Match("(newE:MyEvent)") 
          .Where((MyEvent newE) => newE.myid == targetEvent.myid) 
          .Return(newE=> newE.Labels().ToString()) 
          .Results.ToList(); 
        return result; 
} 

回答

1

的文档节“Get all labels for a specific user”显示验证码:

graphClient.Cypher 
    .Match("(user:User)") 
    .Where((User user) => user.Id == 1234) 
    .Return(user => user.Labels()) 
    .Results 
立足于问题的错误消息

,我相信,你只需要删除toString()从退货,如下:

public List<string> getLabels(MyEvent targetEvent) 
{ 
    List<string> result = this.client.Cypher.Match("(newE:MyEvent)") 
     .Where((MyEvent newE) => newE.myid == targetEvent.myid) 
     .Return(newE=> newE.Labels()) 
     .Results.ToList(); 
     return result; 
}