neo4client Merge не всегда работает - PullRequest
0 голосов
/ 28 апреля 2018
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 Preview Core 2.1 и VS 2017 core 2.0

1 Ответ

0 голосов
/ 28 апреля 2018

Вы должны изменить свой код на это:

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. Поэтому в данном случае нормально иметь только один узел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...