Neo4j客户端在两个现有节点之间创建关系
在对现有关系使用“展开”时,我尝试在两个节点之间创建关系(我尝试从以前的数据库迁移) So Links=保存目标和源上每个节点Id的关系(Id不同于neo4j Id) 密码不会返回任何错误,我确实设法添加了节点,但由于某些原因,我无法理解为什么没有创建节点之间的关系 我正在使用这个密码:Neo4j客户端在两个现有节点之间创建关系,neo4j,cypher,neo4jclient,Neo4j,Cypher,Neo4jclient,在对现有关系使用“展开”时,我尝试在两个节点之间创建关系(我尝试从以前的数据库迁移) So Links=保存目标和源上每个节点Id的关系(Id不同于neo4j Id) 密码不会返回任何错误,我确实设法添加了节点,但由于某些原因,我无法理解为什么没有创建节点之间的关系 我正在使用这个密码: graphClient.Cypher .Unwind(graph.Links, "singleLink") .Match("(firstNode:Node{id: singleLink.Sour
graphClient.Cypher
.Unwind(graph.Links, "singleLink")
.Match("(firstNode:Node{id: singleLink.Source , projectId: {innerProjectId}})", "(secondNode:Node{id: singleLink.Target , project: {innerProjectId}})")
.WithParam("innerProjectId",project.Id)
.Create("(firstNode:Node)-[:ConnectedTo{source: singleLink.Source, target: singleLink.Target}]->(secondNode:Node)")
.ExecuteWithoutResults();
非常感谢。我想这是你想要的
MATCH (n1), (n2)
WHERE ID(n1) = 1 AND ID(n2) = 2
CREATE (n1)-[r:RELATION]->(n2)
关于“我确实设法添加节点”:您提供的代码永远不会尝试创建任何节点,因为
create
子句只有在MATCH
子句已经找到节点时才会执行。确实存在具有指定的id
和projectId
值的节点吗?是。我确信DebugQueryText
是什么样子的?我需要.NET客户端密码,我没有使用Neo4j ID(这是一个坏习惯),所以ID(n)对我来说不好,我放在里面的ID是由SQL生成的。你可以在Neo4j浏览器中自己测试它吗<代码>匹配(n1{Id:1}),(n2{Id:2})创建(n1)-[r:relationship]->(n2)
在浏览器中,我正在编写的密码正在工作,这就是为什么它对我如此奇怪的原因。。我真的认为我写的密码很好,应该能用。我用两个参数进行匹配,不仅是ID,还有另一个参数。好了,我现在对.NET客户端没有任何了解。也许你可以加入Neo4j slack,在那里询问有人可以在Stackoverflow上查看这个问题。