2012-07-06 70 views
1

我只是不能通过Neo4jClient和Cypher获得Neo4j的对象。Neo4jClient/Cypher查询返回的对象,但没有设置属性

var client = new GraphClient(new Uri("http://mymachine:7474/db/data")); 
client.Connect(); 
var myList = client.RootNode.StartCypher("root") 
    .Match("root-[:RELATED_TO]->(user)") 
    .Return<User>("user").Results; 

我在myList [0]中得到一个User对象,但它的属性是空的。

我打通

client.ExecuteGetCypherResults<User>(
    new CypherQuery("start n=node(1) return n;",null, CypherResultMode.Set) 
); 

有我忽视什么明显的一点是相同的(空Properties对象)?

(Neo4j的1.8 MS5,Neo4jClient 1.0.0.388)

/Neo4jClient/Neo4j的小白。

回答

1

耶!我改变到节点像这样:

var myList = client.RootNode.StartCypher("root") 
    .Match("root-[:RELATED_TO]->(user)") 
    .Return<Node<User>>("user").Results; 

最后

var myList = client.RootNode.StartCypher("root") 
    .Match("root-[:RELATED_TO]->(user)") 
    .Return<Node<User>>("user").Results 
    .Select(nu => nu.Data); 

最简单的例子应该是:

var myList = client.ExecuteGetCypherResults<Node<User>>(
    new CypherQuery("start n=node(1) return n;", null, CypherResultMode.Set)) 
.Select(un => un.Data); 

其中1是用户节点的ID。

+0

不错,很高兴看到你解决了它。 – 2012-07-09 12:28:32

+0

一年后使用Google搜索相同的问题,我发现了另一个罪魁祸首。 User类的字段必须是公共的。内部是不够的。 – LosManos 2013-09-17 19:01:12

+1

而不是使用退货>,然后用Select呼叫将其扔掉,只需使用Return 即可。 – 2013-12-17 10:18:08

相关问题