クエリを実行しているときに複数のラベルが返されることを期待している人は誰でも解決策を見つけましたか?例えばNeo4jClientで.As <>を使用すると返されるときラベルが不明です
、私はMovie
に関連付けられているすべての人を返すために、次のクエリを持っていると言う:
MATCH (movie:Movie)-[link]->(person) WHERE movie.Title = "The Princess Bride" RETURN person;
person
データベースでDirector
、Actor
、Producer
、または他のいくつかのラベルかもしれないが、結果は私にそのことを教えてくれないし、クエリ内でそれを理解する方法もないようだ(Labels()
を除く)。
私は期待しているフィールドを指定するラベルをそれぞれ定義していますので、さまざまな操作を実行できますが、Neo4jClientを使用してこれらのタイプを解決する方法がわかりません。
現在、私は次のことを行ってきた:ときに、同じようにすることができます
IEnumerable<Actor> actorResult = this._graphClient.Cypher .Match("(movie:Movie)-[link]->(person:Actor)") .Where((Movie movie) => movie.Title == "The Princess Bride") .Return((person) => person.As<Actor>()) .Results;
そして、それぞれのラベルのためにそれを繰り返すことは、(適切なラベル/タイプを交換する)が、3つのクエリは明らかに理想的ではありません1つで簡単に行うことができます。私はノードのラベルを収集し、結果をループし、それに基づいてキャストすることができると思っていましたが、それは機能しなくなった余分な作業の多くです。私はまだobject
から私の定義された型にキャストできる必要があります。
私はこの1つを完全に思っているかもしれませんが、私は何か提案をいただきありがとうございます。
私はNeo4jClientで 'ノード<>'クラスを逃したのか分からない...それは私が探していたまさにですために。はい、特に私が3つ以上のデータベースコールを持っている他のケースでは、私は同意します。パフォーマンスのメリットは大規模になります。この返答いただきありがとうございます!これは非常に役に立ちます。 –