我是Neo4j的新手,嘗試在where子句中使用lambda表達式執行簡單的Cypher查詢,但出於某種原因,我似乎無法弄清楚爲什麼這不是'不工作。WHERE子句中的Lambda表達式不按預期方式工作
的樣子:
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
爲什麼在這個世界上有一個額外的驚歎號指向變量的名字?
我用複製/粘貼來得到確切的文字。 –
你在哪裏粘貼?只要'!'和'='之間有空格,就不會出錯。如果你運行這個查詢:'START n = node(0)WHERE n.Name! =「TEST」RETURN n;'在密碼控制檯中是否顯示相同的錯誤? –
我使用了複製/粘貼來獲取確切的文本,並且我還去了shell本身,並在個人輸入它以防萬一有隱藏的字符,但解析器返回相同的錯誤。 (抱歉,格式不佳,我沒有這個網站的掛起) 'START n = node(*)WHERE(n.Name!=「FOO」)RETURN n;'返回本地錯誤服務器(2.0.0-M04 Windows社區) 奇怪的是,如果我在[http://www.neo4j.org/learn/try] 針對實時示例數據庫執行相同的確切查詢,我會懷疑是否這是在窗口構建這個特殊版本的解析器中的錯誤? –