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