2015-10-27 4 views
0

Я использую neo4jclient для C#.Neo4Jclient | Пользовательское выражение return

Я хотел бы вернуть что-то вроде:

ЭКСТРАКТОМ (ри в RELS (р) | STARTNODE (п)), как StartNodes, ЭКСТРАКТ (п в RELS (р) | п), как отношения, ЭКСТРАКТ (ri в RELS (p) | ENDNODE (ri)) в виде EndNodes

Как извлечь на беглый api neo4jclient?

P - путь.

ответ

2

Не зная ваш полный запрос или конкретную проблему/сценарий, который вы пытаетесь решить, трудно предложить полный запрос, но может быть использован метод цепного возврата, содержащий что-то вроде следующего:

var query = client.Cypher 
    .Match("p = [your match statement]") 
    .Return(p => new 
    { 
     StartNodes = Return.As<IEnumerable<Node<Person>>>("extract(ri in rels(p) | startnode(ri))"), 
     Relations = Return.As<IEnumerable<RelationshipInstance<Person>>>("extract(ri in rels(p) | ri)"), 
     EndNodes = Return.As<IEnumerable<Node<Person>>>("extract(ri in rels(p) | endnode(ri))") 
    }); 

Если вам не нужны объекты обертки можно просто вернуть IEnumerable<Person>, е, г,

.Return(p => new 
{ 
    StartNodes = Return.As<IEnumerable<Person>>("extract(ri in rels(p) | startnode(ri))"), 
    Relations = Return.As<IEnumerable<Person>>("extract(ri in rels(p) | ri)"), 
    EndNodes = Return.As<IEnumerable<Person>>("extract(ri in rels(p) | endnode(ri))") 
    }); 

Обратите внимание, что приведенный выше код предполагает, что ваш пытаются преобразовали ответ от Neo4j в объект POCO типа Person. Вы должны подставить это для любого объекта, который вы используете.

Смежные вопросы