0

我知道如何获取相关节点,并指定关系以找到这些节点,但似乎没有任何机制可以自己找到关系?

查看 Neo4JClient 的源代码,您可以找到“Relationship”类型,但它仅在创建关系时使用,而不是在检索它们时使用。

检索时,您可以获得“RelationshipInstance”,但它由一个RelationshipReference 和两个NodeReferences 组成。除了与每个关联的唯一整数ID 之外,它们都没有与它们关联的任何数据。

4

1 回答 1

3

听起来您想要访问存储在关系中的数据。我们将这些称为“有效载荷”。

您可以像这样查询它们:

client
    .RootNode
    .OutE<FooPayload>()
    .Select(p =>
    {
        p.Reference.Id,         // Relationship ID
        p.StartNodeReference,   // Outbound vertex
        p.EndNodeReference,     // Inbound vertex
        p.Data,                 // Payload as FooPayload
        p.Data.Bar              // A property in the payload
    });

更有可能的是,您希望使用按类型过滤关系的 OutE 重载,例如:

client
    .RootNode
    .OutE<FooPayload>("HAS_FOO")

如果你在没有泛型类型参数的情况下使用 OutE 的重载,你将获得引用但没有负载数据(因为我们不知道将数据反序列化成什么)。

HTH。

——泰坦

于 2012-05-09T23:43:06.827 回答