Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过neo4jclient传递查询时出现语法错误_C#_Neo4j_Neo4jclient - Fatal编程技术网

C# 通过neo4jclient传递查询时出现语法错误

C# 通过neo4jclient传递查询时出现语法错误,c#,neo4j,neo4jclient,C#,Neo4j,Neo4jclient,我有一些我从中得到的代码,我对其进行了修改,以使其更简单地工作。我想修改它的另一个原因是因为我试图捕获某种结果,以确保操作成功或失败,或者???。到目前为止我还没有弄明白,所以这是一个问题。另一个问题是下面的代码,我知道它很难看,但它还没有工作,我会在它工作时清理它 var newUser = new {Id = model.Password.ToString(), Name = model.UserName.ToString() }; var mee = client.Cypher

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

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变量有一个查询,我可以看到它失败的原因,但不知道如何修复它

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

对于查询,等号(=)必须是冒号(:)。这样,查询就可以工作了。第二个问题,有没有办法做到这一点?

看起来您没有调用
.ExecuteWithoutResults()
.Results
,所以没有任何东西会真正进入Neo4j

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

var newUser = new User { Id = 456, Name = "Jim" };
graphClient.Cypher
    .Create("(user:User {newUser})")
    .WithParam("newUser", newUser)
    .ExecuteWithoutResults();
如果要返回某个内容,则需要在密码调用中使用
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();
var newUser=newUser{Id=456,Name=“Jim”};
var createdUser=graphClient.Cypher
.Create(“(用户:用户{newUser})”
.WithParam(“新用户”,新用户)
.Return(user=>user.As)
.结果
.SingleOrDefault();
但在这个特定的示例中,这是完全没有意义的,因为您将始终只返回您创建的同一个节点


至于
=
,这只是
QueryText
DebugQueryText
的区别。请看
QueryText
,因为它实际上是最后一个经过连接的部分。

删除.ExecuteWithoutResults是我所做的修改之一,因为如果我将它留在那里,我将无法捕获.Create的结果。Using.Results给出了另一个错误,我无法通过:错误1'Neo4jClient.Cypher.ICypherFluentQuery'不包含'Results'的定义,并且找不到接受'Neo4jClient.Cypher.ICypherFluentQuery'类型的第一个参数的扩展方法'Results'只有在您实际返回密码中的内容时,结果才可用。我已经更新了我的答案以包含此场景。无论哪种方式,都必须通过调用ExecuteWithoutResults或Results来执行查询。没有这一点,一切都不会发生。