![](/img/trans.png)
[英]How do I create a relationship between two nodes using C# Neo4jClient?
[英]Neo4jClient C# How to get all nodes
我在C#中使用Neo4jClient和Neo4j圖形數據庫,我想知道如何使用Neo4jClient檢索所有節點。
這是密碼查詢,用於檢索與“ KNOWS”有關系的所有節點,而與關系方向無關:
start n =node(*) match n-[r:KNOWS]-(friend) return friend;
這是Neo4jClient的C#代碼:
var client = new GraphClient(new Uri("http://localhost:7474/db/data"));
client.Connect();
var cypherFluentQueryReturned = client.RootNode
.StartCypher("n")
.Match("n-[:KNOWS]->friend")
.Return<Node<Person>>("friend");
但是Neo4jClient不允許從*檢索所有節點,而只能從起點(此處是根節點)檢索。
我如何用Neo4jClient檢索所有節點,而不僅檢索附加到根節點的節點?
似乎沒有辦法通過Neo4jClient.GraphClient從*查詢節點。
但是我可以通過使用RawGraphClient執行查詢來做到這一點:
CypherQuery query = new CypherQuery("start n=node(*) match n-[KNOWS]-(person) return person", new Dictionary<string, object>(), CypherResultMode.Set);
var persons = ((IRawGraphClient)client).ExecuteGetCypherResults<Person>(query).ToList();
使用Node<T>.StartCypher(identity)
是創建查詢並一次性啟動所有查詢的快捷方式。
而是直接從客戶端創建查詢:
client
.Cypher
.Start(new { n = All.Nodes })
.Return<object>("n")
然后,您可以完全控制START
子句。
我當然認為這個問題是因為尚未在NEO4JClient庫中實現它,此外,現在的問題是Neo4JClient團隊遮蓋了ExecuteGetCypherResults,所以現在我們將不得不直接實現IRawGraphClient或僅使用HttpWebRequest來實現。 :-/至少這是我在bitbucker的存儲庫中看到一些信息后得出的結論。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.