我正在尝试使用neo4jclient将N个节点导入neo4j。我正在使用Azure中托管的neo4j集群,所以我必须使用Bolt协议。所以我使用的是neo4jclient的RC1。
根据我将在下面包含的示例,我有以下代码:
BoltGraphClient client =
new BoltGraphClient(new Uri("bolt://myserver:7687"), "neo4j", "mypwd");
client.Connect();
var nodes = new List<myNode>()
{
new myNode()
{
id = "a",
patientKey = "aaa",
patient_fname = "John",
patient_lname = "Doe"
},
new myNode()
{
id = "b",
patientKey = "bbb",
patient_fname = "Jane",
patient_lname = "Doe"
}
};
client.Cypher
.Create("(n:Node {nodes})")
.WithParams(new { nodes })
.ExecuteWithoutResults();
我收到以下错误:
发生了Newtonsoft.Json.JsonSerializationException 的HResult = 0x80131500 Message =无法将当前JSON数组(例如[1,2,3])反序列化为类型System.Collections.Generic.Dictionary`2 [System.String,System.Object]&#39;因为类型需要JSON对象(例如{&#34; name&#34;:&#34; value&#34;})才能正确反序列化。 要修复此错误,请将JSON更改为JSON对象(例如{&#34; name&#34;:&#34; value&#34;})或将反序列化类型更改为实现集合接口的数组或类型(例如ICollection,IList)就像可以从JSON数组反序列化的List。 JsonArrayAttribute也可以添加到类型中,以强制它从JSON数组反序列化。
我相信我遵循了以下应该有效的答案:https://apod.nasa.gov/htmltest/gifcity/sqrt3.1mil
我使用的是Neo4j 3.2.6,Neo4jClient 3RC1和c#4.6
如果一切看起来都不错,那么我将为Neo4jClient创建一个缺陷。
答案 0 :(得分:0)
Neo4jClient 3.0.0-RC2
刚刚发布。我无法获得您必须运行的查询,因此我将使用该查询,但我从Neo4jClient
和官方Neo4j.Driver
收到相同的错误,因此我假设它的变化意味着Cypher不再有效。
但是,您可以使用RC2
找到:
client.Cypher
.Unwind(nodes, "node")
.Create("(n:Node)")
.Set("n = node")
.ExecuteWithoutResults();
这就是我做你想做的事情。