我正在使用Neo4JClient来填充Neo4JDB中的节点。
我有一个函数被调用来创建节点并标记它们。 第一个参数是标签,第二个参数是节点属性
function CreateConcpet( String sLabelString, String sDataSpaceName)
{
var newConcept = new Concept {DataSpace=sDataSpaceName};
client.Cypher
.Create("(concept:{labelstring} {ParamnewConcept})")
.WithParam("ParamnewConcept",newConcept)
.WithParam("labelstring",sLabelString)
.ExecuteWithoutResults();
}
这使用参数代替标签。
这不起作用。从各个帖子中,我了解WithParam不适用于标签。
如果可怕的ExecuteCypher是唯一的方法,有人可以帮我一个代码片段,它执行一个字符串作为查询。我找不到代码片段,而文档给出了调用,我无法找到创建查询对象并执行字符串查询的示例。
答案 0 :(得分:0)
您无法参数化会影响已编译查询计划的内容。标签在查询计划中使用,因此没有参数。
这是参数在Neo4j中工作的一般限制,而不仅仅是Neo4jClient。
答案 1 :(得分:0)
我有同样的问题(经过多次糖化后)很容易解决......
我有两种类型的节点,Person和Union。这两行标记为
MATCH (n) where n.surname >' ' SET n :Person
MATCH (n) where n.surname is null SET n :Union
这取决于具有不同元数据的两种节点类型,以区分它们。