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; }
}
感谢
我相信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})。'