我有以下密码查询:
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();
当在 Neo4jClient 中进行反序列化时,我得到以下“没有为此对象定义的无参数构造函数”。无论如何,我想在一个查询中完成这一切,而不是两个。