如何使用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;
}
答案 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;
}