шифровальщиком вики Neop4jClient (https://github.com/Readify/Neo4jClient/wiki/cypher) содержит пример использования лямбда-выражения для возврата нескольких проекций ...Возвращение составного класса с Neo4jClient
var query = client
.Cypher
.Start(new { root = client.RootNode })
.Match("root-[:HAS_BOOK]->book-[:PUBLISHED_BY]->publisher")
.Return((book, publisher) => new {
Book = book.As<Book>(),
Publisher = publisher.As<Publisher>(),
});
Таким образом, запрос будет возвращать детали как книги узлов и издатель узлов. Но я хочу сделать что-то немного другое. Я хочу объединить содержимое одного типа узла с свойством согласованного пути. Допустим, у меня есть Person узлы с «именем» собственности, и класс, определенный так ,,,
public class descendant
{
public string name { get; set; }
public int depth { get; set; }
}
высчитывать запрос, как это будет вернуть то, что я хочу, что все потомки данного узла с глубиной отношений ...
match p=(n:Person)<-[*]-(child:Person)
where n.name='George'
return distinct child.name as name, length(p) as depth
Если я пытаюсь Neo4jClient запрос, как это ...
var query =
_graphClient.Cypher
.Match("p=(n:Person)<-[*]-(child:Person)")
.Where("n.name='George'")
.Return<descendant>("child.name, length(p)") ;
Я получаю сообщение об ошибке, что синтаксис является устаревшим, но я не могу понять, как следует Я проецирую cypher resu lts на мой C# POCO. Какие-нибудь идеи?
Спасибо, что сработало удовольствие. Особенно после обновления до последней версии Neo4jClient.dll! Я использую параметры в своем коде проекта - я просто упростил некоторые вещи, чтобы подать пример. –
Ах круто - просто хотел убедиться! :) –