Я столкнулся со следующей проблемой: когда я выполняю запрос, который возвращает результат в анонимном объекте:
var query = this.GraphClient.Cypher
.Match($"(e:{SystemNodeLabelEnum.Product.ToString()} {{MyId: "{myId}"}})")
.Return(e => new { SystemNode = e.As<SystemNode>() })
.OrderBy("e.NodeId")
.Skip(offset)
.Limit(limit);
это исключение запроса:
Exception:
Exception has been thrown by the target of an invocation.
Inner exception:
Conversion of ZonedDateTime to INode is not supported.
at Neo4j.Driver.V1.TemporalValue.System.IConvertible.ToType(Type conversionType, IFormatProvider provider)
at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) in /_/src/System.Private.CoreLib/shared/System/Convert.cs:line 377
at System.Convert.ChangeType(Object value, Type conversionType) in /_/src/System.Private.CoreLib/shared/System/Convert.cs:line 315
at Neo4j.Driver.V1.ValueExtensions.As[T](Object value)
at Neo4jClient.StatementResultHelper.Parse[T](IRecord record, String identifier, IGraphClient graphClient)
Когда я изменил возвращаемый тип, который будет конкретным объектом (не анонимным) следующим образом:
public class SystemNodeContainer
{
public SystemNode Node { get; set; }
}
тот же запрос выполняется правильно и возвращает правильный результат.
var query = this.GraphClient.Cypher
.Match($"(e:{SystemNodeLabelEnum.Product.ToString()} {{MyId: "{myId}"}})")
.Return(e => new SystemNodeContainer { SystemNode = e.As<SystemNode>() })
.OrderBy("e.NodeId")
.Skip(offset)
.Limit(limit);
Не могли бы вы посоветовать?