使用Neo4jClient更新关系/有效负载

时间:2013-05-03 15:42:56

标签: neo4j neo4jclient

我是Neo4j和Neo4jClient的新手。我想更新现有的关系。以下是我创建这种关系的方式。

var item2RefAddedBefore = _graphClient.CreateRelationship((NodeReference<Item>)item2Ref,
                new AddedBefore(item1Ref, new Payload() { Frequency = 1 }));

对于这个特定的用例,我想在节点和关系已经存在时更新Payload。我主要使用Cypher和Neo4jClient。

感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

使用此IGraphClient签名:

void Update<TRelationshipData>(RelationshipReference<TRelationshipData> relationshipReference, Action<TRelationshipData> updateCallback)
    where TRelationshipData : class, new();

像这样:

graphClient.Update(
    (RelationshipReference<Payload>)item2RefAddedBefore,
    p => { p.Foo = "Bar"; });

更新:语法现在有点尴尬,其中CreateRelationship只返回RelationshipReference而不是RelationshipReference<TData>,但Update要求后者,所以你需要明确地施展它。说实话,我们可能不会很快解决这个问题,因为Neo4j和Neo4jClient的所有投资都将通过Cypher进行突变。