List<string> names = new List<string>() { "Alice", "Bob", "Sara", "Maria"};
foreach (string n in names)
{
db.Cypher
.Merge("(a:New)")
.Set("a.Name = $n")
.WithParam("n", n)
.ExecuteWithoutResults();
}
仅创建一个顶点而不是四个(不一定是列表的第一个元素)。 Parallel.Foreach和单个方法调用的问题相同。 在本地和远程数据库上。 VS 2017预览核心2.1&amp; VS 2017核心2.0
答案 0 :(得分:2)
您应该将代码更改为:
List<string> names = new List<string>() { "Alice", "Bob", "Sara", "Maria"};
foreach (string n in names)
{
db.Cypher
.Merge("(a:New {Name:$n})")
.WithParam("n", n)
.ExecuteWithoutResults();
}
在这种情况下,您要求Neo4j创建(或不创建)标签为New
并且属性Name
等于$n
的节点。
在您的情况下,您只是要求创建(或不创建)标签为New
的节点,然后将其属性Name
创建为$n
。
因此,在这种情况下,只有一个节点是正常的。