gpt4 book ai didi

neo4jclient - WHERE 子句中的 Lambda 表达式未按预期工作

转载 作者:行者123 更新时间:2023-12-04 03:25:54 25 4
gpt4 key购买 nike

我是 Neo4j 的新手,并尝试在 where 子句中使用 lambda 表达式执行简单的 Cypher 查询,但由于某种原因,我似乎无法弄清楚为什么这不起作用。

好像:

class HealthNode { 
public string Name{get;set;}
//Other Stuff
}
string Name = "Foobar";

var query = client
.Cypher
.Start(new { n = Neo4jClient.Cypher.All.Nodes })
.Where((HealthNode n) => n.Name == Name)
.Return<HealthNode>("n");

如果我转储文本和参数我得到:
START n=node(*)
WHERE (n.Name! = {p0})
RETURN n
//P0 Foobar

当我执行这个时,我当然得到:
Cypher does not support != for inequality comparisons. Use <> instead

为什么世界上的变量名称有一个额外的感叹号?

最佳答案

!意味着如果该属性不存在,结果将为假。因此,如果图中有多个类型,而另一种类型没有 'Name' 属性,neo4j 就不会费心匹配。

Neo4J Documentation了解更多信息。

至于获得 != 警告,您在粘贴时是否更改了查询?重新格式化?如果我这样做,我会收到同样的警告:

WHERE (n.Name != {p0})

但如果我使用,则不会收到任何警告,并成功完成:
WHERE (n.Name! = {p0})

关于neo4jclient - WHERE 子句中的 Lambda 表达式未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18423929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com