簡體   English   中英

向 Datastax CassandraCSharpDriver.Graph 中的現有頂點添加新頂點和邊,但出現邊輸出錯誤

[英]Adding a new vertex and an edge to an existing vertex in Datastax CassandraCSharpDriver.Graph but get edge OUT error

我正在向 Datastax Graph 中的現有頂點添加一個新頂點和一條邊,我想看看如何使用 Datastax CassandraCSharpDriver.Graph 做到這一點。

工作 Gremlin 代碼如下所示:

Vertex link1 = graph.addVertex(label, "link").property("id", "link-2")
Vertex item1 = g.V().has("item", "id", "item-1").next()
item1.addEdge('contains', link1)

但是在 C# 驅動程序語法中,我希望做這樣的事情,但是當我執行它時,錯誤是“方向 'OUT' 中的 'contains' 鄰接尚未添加到 'link'”

GraphTraversalSource g = DseGraph.Traversal(mySession);
var traversal = g.AddV("link").Property("id", "link-1")
                .AddE("contains")
                .V("item").Has("id", Eq("item-1"));
GraphResultSet result = mySession.ExecuteGraph(traversal);

我創建了這樣的邊緣和邊緣連接:

schema.edgeLabel("contains").multiple().create()  
schema.edgeLabel("contains")  
.connection("item", "link")  
.connection("link", "item")  
.add()  

如果架構邊緣設置不正確,或者如何在 Datastax CassandraCSharpDriver.Graph 中以最佳方式執行此操作有任何想法嗎?

你的小精靈在這里:

g.AddV("link").Property("id", "link-1")
            .AddE("contains")
            .V("item").Has("id", Eq("item-1")

沒有正確形成。 它應該是:

g.AddV("link").Property("id", "link-1").As('l1').
  V("item").Has("id", Eq("item-1")).
  AddE('contains').To('l1')

使用AddE()您需要指定From()To()以標識邊連接的頂點。 如果不指定這些, AddE()將只使用傳入的Vertex來創建自引用邊的兩個值。 因此,在這種情況下,您應該只需要指定To()作為推斷的From()

請注意參考文檔中的示例,您應該在其中看到執行此操作的其他方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM