通过neo4jclient传递查询的语法错误

时间:2014-03-20 04:17:38

标签: c# neo4j neo4jclient

我从cypher examples获得了一些代码,我修改了这些代码以使其更简单,使其工作。我想修改它的另一个原因是因为我试图捕获某种结果以确保操作成功或失败,或???。到目前为止,我还没有弄明白,所以这是一个问题。另一个问题是下面的代码,我发现它很难看,但它还没有工作,我会在工作时清理它。

var newUser = new {Id = model.Password.ToString(), Name = model.UserName.ToString() };

var mee = client.Cypher
                        .Create("(user:Name {newUser})")
                        .WithParam("newUser", newUser);

                    mee.ToString();

这无法插入记录,但在它所在的try catch中没有引起异常.mee变量有查询,我可以看到它为什么失败但无法弄清楚如何修复它。 / p>

mee = CREATE (user:Name { Id = 'aaaaaa', Name = 'ab' })

对于查询,等号(=)必须是冒号(:)。有了它,查询应该工作。第二个问题,任何实现这一目标的方法?

1 个答案:

答案 0 :(得分:2)

看起来你没有打电话给.ExecuteWithoutResults().Results,所以没有任何东西可以真正转到Neo4j。

查看您链接到的完整示例:

var newUser = new User { Id = 456, Name = "Jim" };
graphClient.Cypher
    .Create("(user:User {newUser})")
    .WithParam("newUser", newUser)
    .ExecuteWithoutResults();

如果你想返回一些东西,那么你需要在你的Cypher调用中包含RETURN子句,然后查看Results属性:

var newUser = new User { Id = 456, Name = "Jim" };
var createdUser = graphClient.Cypher
    .Create("(user:User {newUser})")
    .WithParam("newUser", newUser)
    .Return(user => user.As<User>)
    .Results
    .SingleOrDefault();

在这个具体示例中,这完全没有意义,因为您将始终只返回您创建的同一节点。

至于= vs :,这只是QueryTextDebugQueryText的差异。看看QueryText,因为那是最终实际通过电线的那个。