.NET - neo4jclient - 从cypher查询中检索结果

时间:2013-10-23 21:59:53

标签: c# .net neo4jclient

我刚刚开始使用neo4jclient,我正在努力使用cypher查询。我使用了来自here的查询,但我没弄明白如何才能得到结果并与之合作。

首先我将一些节点放在数据库中,然后我想要检索它们(在这种情况下是一个),我尝试了这个:

var u = client.Cypher
     .Match("(user:User)")
     .Where((User user) => user.Id == 1)
     .Return(user => user.As<User>());

Console.WriteLine(u.Results.ToList().First().Id);

(我确信数据库中存在节点,并且Id = 1的节点)

但是在结果方法的路线上,我得到了这个例外:

SyntaxException:预期START或CREATE “MATCH(用户:用户)”

我是neo4j的初学者,我无法找到如何访问和处理查询结果,所以我想请你帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:1)

您收到的错误是说您需要使用STARTCREATE子句启动Cypher查询。这向我表明你正在对抗Neo4j 1.9或更低版本。 START子句在Neo4j 2.0中只是可选的。

如果您正在开始一个新项目,我建议您使用Neo4j 2.0。最终版本尚未发布,但预览肯定足够稳定,您可以开始开发,最终版本将很快推出。

如果您需要使用Neo4j 1.9,那么您需要使用包含START子句的旧版Cypher查询。

答案 1 :(得分:-1)

这是2小时前向Neo4jClient团队报告的一个已知问题:https://bitbucket.org/Readify/neo4jclient/issue/163/neo4j-v2m6-client-syntax-error

作为解决方法试试这个:

var u = client.Cypher
     .Match("(user:User)")
     .Where("user.Id = {userId}")
     .WithParam(new {userId = 1})
     .Return(user => user.As<User>());