Neo4jClient:删除关系

Neo4jClient:删除关系,neo4j,cypher,neo4jclient,Neo4j,Cypher,Neo4jclient,我有以下密码查询: start n=node(0) match (n)-[:USER_BELONGS_TO]-(x)-[r]->(y) where (x.EmailAddress = 'someoneelse@something.net') and (y.EmailAddress = 'someone@something.net') and (type(r) = 'FOLLOWS') delete r; 我如何让Neo4jClient做同样的事情?(并指示查询已成功或失败) 我是这样想的

我有以下密码查询:

start n=node(0)
match (n)-[:USER_BELONGS_TO]-(x)-[r]->(y)
where (x.EmailAddress = 'someoneelse@something.net')
and (y.EmailAddress = 'someone@something.net')
and (type(r) = 'FOLLOWS')
delete r;
我如何让Neo4jClient做同样的事情?(并指示查询已成功或失败)

我是这样想的:

var results = new CypherFluentQuery(_dataOperations.GraphClient)
                  .Start("n", _dataOperations.GraphClient.RootNode)
                  .Match(string.Format("(n)-[:{0}]-(x)-[r]->(y)", UserBelongsTo.TypeKey))
                  .Where(string.Format("x.EmailAddress! ='{0}'", follower))
                  .And()
                  .Where(string.Format("y.EmailAddress! ='{0}'", leader))
                  .And()
                  .Where(string.Format("type(r) = '{0}'", Follows.TypeKey))
                  .Delete("r")
                  .Results;
但是,Delete()在该上下文中不起作用

如果我可以得到RelationshipReference,那么我可以调用该方法

void DeleteRelationship(RelationshipReference reference);
但我不知道你是否可以通过cypher和我尝试下面这样的查询来获得RelationshipReference

 var results = new CypherFluentQuery(_dataOperations.GraphClient)
              .Start("n", _dataOperations.GraphClient.RootNode)
              .Match(string.Format("(n)-[:{0}]-(x)-[r]->(y)", UserBelongsTo.TypeKey))
              .Where(string.Format("x.EmailAddress! ='{0}'", follower))
              .And()
              .Where(string.Format("y.EmailAddress! ='{0}'", leader))
              .And()
              .Where(string.Format("type(r) = '{0}'", Follows.TypeKey))
              .Return<RelationshipReference<Follows>>("r")
              .Results
              .SingleOrDefault();
var results=new CypherFluentQuery(\u dataOperations.GraphClient)
.Start(“n”,_dataOperations.GraphClient.RootNode)
.Match(string.Format(“(n)-[:{0}]-(x)-[r]->(y)”,UserBelongsTo.TypeKey))
.Where(string.Format(“x.EmailAddress!='{0}',follower))
.及()
.Where(string.Format(“y.EmailAddress!='{0}',leader))
.及()
.Where(string.Format(“type(r)='{0}',后跟.TypeKey))
.回报(“r”)
.结果
.SingleOrDefault();
当反序列化在Neo4jClient中进行时,我得到了以下“没有为此对象定义无参数构造函数”。无论如何,我想在一个查询中完成这一切,而不是两个查询。

这个问题现在已经解决了。现在,您可以在Where.

后面添加一个Delete子句,而不是.Where(string.Format(“x.EmailAddress!='{0}',follower)),.Where(x=>x.EmailAddress==follower)会更安全。