Neo4JClient Cyper.Create Deprecated

本文关键字:Deprecated Create Cyper Neo4JClient | 更新日期: 2023-09-27 18:19:50

我刚刚开始探索Graph数据库和Neo4J的Neo4jClient库。我使用的是从Visual Studio中的NuGet下载的Neo4JClient v1.0.11。我想在Neo4J中创建一个节点,为此我使用了以下代码(C#):

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

但在Cypher.Create Intellisense上显示它已被弃用。我的问题是,创建节点的另一种方法是什么?举个例子就好了。

在这种特殊的情况下,我有一个要在数据库中创建的用户。该类看起来像:

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; }
}

感谢

Neo4JClient Cyper.Create Deprecated

我相信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(string,params-object[])"已过时:"请将Create(string)与显式命名的params一起使用。例如,不要使用Create("(c:Customer{0})",而是使用Create("(c:Client{client})").WithParams(new{Customer})。'