2014-09-01 4 views
1

Я пытаюсь программно сохранять информацию в БД Neo4J с помощью Neo4Jclient.Невозможно создать элемент с помощью Neo4Jclient

Я пытался следовать примерам, но, похоже, он не работает.

Я создал соединение с базой данных, которая, кажется, работает, но мой код не будет компилироваться из-за ниже линию ..

public void SaveNewRootItem(string child) 
    { 
     client = new GraphClient(new Uri([ConnectionStringhere])); 

     client.Connect(); 
      client.Cypher 
      .Create("(m:LinkItem {child})") 
      .WithParams("child", child); 
    } 

Согласно примерам on the wiki for the opensource repo я должен предоставлять параметризованную информацию " WithParams».

Что я делаю неправильно?

+0

Можете ли вы поместить код вокруг этого? то есть что такое «дочерний» объект? –

+0

Я только начинал с метода void, единственная вещь, кроме этого, - это подпись метода, которая принимает значение жало, определенное как дочернее. но я добавил, где я был с ним в то время – Nav

ответ

2

Я думаю, что вижу, что вы делаете, предполагая, что существует child, вам нужно сделать пару изменений. Во-первых, вы будете хотеть использовать WithParam не WithParams, и после этого, чтобы получить его в БД вам нужно ExecuteWithoutResults(), так что вы запрос будет выглядеть следующим образом:

client.Cypher 
    .Create("(m:LinkItem {child})") 
    .WithParam("child", child) 
    .ExecuteWithoutResults(); 

Если вы действительно хотел использовать WithParams вы должны предоставить словарь:

client.Cypher 
    .Create("(m:XX {child})") 
    .WithParams(new Dictionary<string, object>{{"child", child}}) 
    .ExecuteWithoutResults(); 

Обычно это полезно, если у вас есть много параметров в одном запросе, все это сводится к тому же независимо.

Смежные вопросы