0

関連ノードを取得する方法と、それらのノードを見つけるための関係を指定する方法は知っていますが、関係自体を見つけるメカニズムはないようです。

Neo4JClient のソース コードを調べると、「Relationship」というタイプが見つかりますが、これはリレーションシップの作成時にのみ使用され、リレーションシップの取得には使用されません。

取得すると、「RelationshipInstance」を取得できますが、これは RelationshipReference と 2 つの NodeReference で構成されています。それぞれに関連付けられた一意の整数 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 に答える