2015-10-29 58 views
0

我剛開始研究Neo4J的Graph數據庫和Neo4jClient庫。我正在使用從Visual Studio中的NuGet下載的Neo4JClient v1.1.0.11。我想創建的Neo4j節點和我使用這個代碼(C#):Neo4JClient Cyper.Create已棄用

var client = new GraphClient(new Uri("http://localhost:7474/db/data"), "user", "pass"); 
client.Connect(); 
client.Cypher.Create(); 

但在Cypher.Create智能感知表明,它已被棄用。我的問題是創建節點的替代方法是什麼?一個例子,將不勝感激。

在這種特殊情況下,我有一個用戶,我想在數據庫中創建。這個類看起來像:

public class User 
{ 
    public Int32 ID { get; set; } 
    public String UserName { get; set; } 
    public String Name { get; set; } 
    public Boolean Active { get; set; } 
    public String Email { get; set; } 
    public String Password { get; set; } 
} 

感謝

回答

1

我相信在Create方法只有一個過載已被標記爲過時的 - 除非有一些我不知道的。下面的代碼應該做你所需要的,並且不會顯示爲不贊成使用。

var client = new GraphClient(new Uri("http://localhost:7474/db/data"), "user", "pass"); 
client.Connect(); 

var user = new User 
{ 
    // initialise properties 
}; 

client.Cypher 
.Create("(u:User {user})") 
.WithParams(new { user = user }) 
.ExecuteWithoutResults(); 

有很多的變化,這將是工作,但它應該讓你開始。

順便說一下,如果您使用Create方法的第一個重載,您確實會看到它被標記爲已棄用。例如,該代碼

client.Cypher 
    .Create("(u:User {0})", user) 
    .ExecuteWithoutResults(); 

會給你以下警告在Visual Studio

'Neo4jClient.Cypher.ICypherFluentQuery.Create(字符串,params對象[])' 已過時:「使用創建(字符串)而不是顯式命名參數。例如,使用Create(「(c:Customer {0})」,customer),而不是Create(「(c:Customer {customer})」)。WithParams(new {customer})。

+0

有關於刪除大量這些傳統調用的討論。 –

+0

是@ChrisSkardon。如果有幫助,很高興參與。 – ceej

+0

我想我們可能會從這個問題的視角來看它:https://github.com/Readify/Neo4jClient/issues/126 –