我無法從Cypher查詢中檢索匹配的關係。Neo4jClient - 從Cypher查詢關係查詢
我有這個簡單的試用代碼:
var movie = client.Create(new Movie { Title = "The Matrix" });
client.Create(new Actor { Name = "Keanu Reeves" },
new ActedIn(movie, new ActedInPayload { Role = "Neo" }));
client.Create(new Actor { Name = "Hugo Weaving" },
new ActedIn(movie, new ActedInPayload { Role = "Agent Smith" }));
var actorsAndRoles = client
.Cypher
.Start(new { movie = movie })
.Match("actor-[r:ACTED_IN]->movie")
.Return((actor, r) => new
{
Actor = actor.As<Node<Actor>>()
// ActedIn = r.As<?????>()
})
.Results;
問題是,我不知道如何鑄就R(與匹配的關係)。
嘗試過各種「.As」類型轉換,但沒有任何工作。因爲我的關係類沒有無參數構造函數,所以Casting to Relationship不起作用 - 但是,然後關係基類本身沒有無參數構造函數,所以不要認爲這會起作用。另一方面投射到RelationshipReference會導致異常。根本不投射(只是返回r)導致「不支持」的例外。
有一些關於此問題的相關SO條目,但其中的建議代碼不再有效或已被棄用。
如何檢索匹配關係?
謝謝!我發現使用繼承自非泛型關係類的關係類可以直接轉換爲此類型而不是有效數據類型。 –
我也可以使用neo4jclient的1.0.0.662版繼承關係類,從「Relationship」中繼承關係類,從而省略中間'Node <>'。不過,我很難在一個地方找到更新版本的neo4jclient的文檔。 –