我知道如何获取相关节点,并指定查找这些节点的关系,但似乎没有任何机制可以自己找到关系?
查看Neo4JClient的源代码,您可以找到“关系”类型,但它仅在创建关系时使用,而不是在检索它们时使用。
检索时,您可以获得一个“RelationshipInstance”,但它包含一个RelationshipReference和两个NodeReferences ..除了与每个相关的唯一整数ID之外,其中没有任何数据与它们相关联。
答案 0 :(得分: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。
- Tatham