2012-07-06 2 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) 
); 

를 통해 같은 (빈 속성을 가진 객체)를 얻을?

(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); 

을 가장 간단한 예는해야한다 : (1)은 사용자 노드의 ID입니다

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

.

+0

멋진, 멋진 당신이 그것을 볼 수 있습니다. –

+0

1 년 후에 같은 질문을하면서 나는 또 다른 범인을 발견했다. User 클래스의 필드는 public이어야합니다. 내부가 충분하지 않습니다. – LosManos

+1

Return >을 사용하는 대신 Select 호출로 버리고 그냥 Return 을 사용하십시오. –

관련 문제