2017-04-24 2 views
0

私は、Dictionary<string, double>オブジェクトをforeachループパラメータとして使用するchyperクエリを持っています。私はループの中でdictonary Keysにアクセスしたいが、これはうまくいかないようだが、私はいつも無効な入力エラーを受け取る。foreachループパラメータとして使用されるディクショナリのキーにアクセスすることはできますか?

無効な入力 '。' {rel.Key}

は、私は、次のクエリを試してみました:

string query = "MATCH(c: Component) WHERE c.Name= {component} 
FOREACH (rel in {relations}| MERGE (c) -[w:WEIGHT]->(d:Component {Name={rel.Key}}) 
SET w.Weight={rel.Value}))"; 

私のパラメータがfollwingされています。私はDictionary<string, double>の配列を使用していると考えることができます

Dictionary<string, object> parameters = new Dictionary<string, object>(); 
parameters.Add("component", component); // string 
parameters.Add("relations", relations); // Dictionary<string, double> 
neo4jsession.Run(query, parameters); 

を唯一の他のバージョン巻き戻しを使うことと一緒に使うことができますが、Dictionaryとforeach Loopでそれを行う方法はありますか?

情報:私は質問タイトルに書いたように私はNeo4jDotNetDriverを使用しないNeo4jclient

答えて

1

私たちは、キーと、各キーの値にアクセスするための構文を少し調整する必要があります。 keys()関数は、マップのキーのリストを取得します。単一のキーがある場合は、map[key]を使用してそのキーの値にアクセスできます。

+0

これは魅力的なように働いてくれました。ありがとうございます。私のクエリはコンポーネントを複製するという問題がありますが、私自身の解決策を見つけることができます:) – Mapendra

関連する問題