Я хочу, чтобы получить следующий запрос в C# эквивалент:Сортировка по Отношения собственности Использование Neo4jClient C#
match(p:Person)-[r1:HAS]->(s:Shelf)
optional match(s)-[r2:CONTAINS]->(l:Link) return p,s,l
order by r2.time_modified;
Первоначально я думал об этом, но он не работает:
var result = await this._graphClient.Cypher
.Match("(person:Person { person_id: {personId}})-[r1:HAS]->(shelf:Shelf)")
.OptionalMatch("(shelf)-[r2:CONTAINS]->(link:Link)")
.WithParams(new { personId = personId })
.Return((shelf, link) => new
{
Shelf = shelf.As<Shelf>(),
Links = link.CollectAs<Link>()
})
.OrderBy("r2.time_modified")
.ResultsAsync;
Я получаю следующее исключение, r2 не определен
r2 не определен ... "ORDER BY r2.time_modified"
Я относительно новичок в использовании драйвера Neo4jClient C#. Может ли кто-нибудь помочь мне и объяснить мне, что происходит? Я также хочу знать, как это сделать.
Это трассировки стека:
в System.Threading.Tasks.Task.ThrowIfExceptional (Boolean) includeTaskCanceledExceptions на System.Threading.Tasks.Task
1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task
1.get_Result() в Neo4jClient.GraphClient , <> c__851.<PrepareCypherRequest>b__85_1(Task
1 ответ) в D: \ Temp \ d298ce3 \ Neo4jClient \ GraphClient.cs: линия 961 на System.Threading.Tasks.ContinuationResultTaskFromResultTask2.InnerInvoke() at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable
1.ConfiguredTaskAwaiter.GetResult() на Neo4jClient.GraphClient.d__871.MoveNext() in D:\temp\d298ce3\Neo4jClient\GraphClient.cs:line 1022 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter
1. GetResult() на .... Repository.Neo4jRepository.d__23.MoveNext() в C: \ Users \ Williams \ Documents \ визуально студии 2015 \ Projects ... \ Repository \ Neo4jRepository.cs: строка 358
Какого типа является исключением? Откуда он? то есть клиент или Neo4j возвращают его? –
Я думаю, что это от клиента, потому что я написал то же самое в Neo4j, и он работал, но клиент возвращает исключение. –
. Какого типа Исключение - откуда оно выбрано, вы также можете вставить больше содержимого исключения здесь –