2

我是 Neo4j 和 Neo4jClient 的新手。我正在尝试更新现有的关系。这是我创建关系的方式。

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

对于这个特定的用例,我想在节点和关系已经存在时更新有效负载。我主要将 Cypher 与 Neo4jClient 一起使用。

感谢任何帮助!

4

1 回答 1

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只返回 aRelationshipReference而不是 aRelationshipReference<TData>Update需要后者,所以你需要显式地转换它。老实说,我们可能不会很快解决这个问题,因为 Neo4j 和 Neo4jClient 的所有投资都将转而通过 Cypher 进行突变。

于 2013-05-04T03:45:22.603 回答