neo4jclient获取节点标签

时间:2017-07-03 08:22:34

标签: c# neo4j graph-databases neo4jclient

如何使用Neo4jClient库

获取节点的标签

这是我运行的代码,它返回了以下错误

  

您提供的返回表达式使用除以外的方法   那些由ICypherResultItem,Neo4jClient.Cypher.All或   Neo4jClient.Cypher.Return。返回表达式需要是某种东西   我们可以转换为Cypher,然后发送到服务器   执行。您不能使用方法链,LINQ到对象或其他方法   像这样的结构。如果要运行客户端逻辑来重塑   您的数据在.NET中,在查询后使用Select调用   执行,如.Return(...)。结果。选择(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 个答案:

答案 0 :(得分:1)

文档部分&#34; Get all labels for a specific user&#34;显示此代码:

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;
}