Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 返回结果作为匿名对象问题_C#_Neo4j_Cypher_Neo4jclient - Fatal编程技术网

C# 返回结果作为匿名对象问题

C# 返回结果作为匿名对象问题,c#,neo4j,cypher,neo4jclient,C#,Neo4j,Cypher,Neo4jclient,我遇到了以下问题:当我在匿名对象中执行返回结果的查询时: 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

我遇到了以下问题:当我在匿名对象中执行返回结果的查询时:

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);
当我将返回类型更改为具体对象(非匿名)时,如下所示:

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);
var query=this.GraphClient.Cypher
.Match($“(e:{SystemNodeLabelEnum.Product.ToString()}{{MyId:{MyId}}})”)
.Return(e=>newsystemnodecontainer{SystemNode=e.As()})
.OrderBy(“e.NodeId”)
.跳过(偏移)
.限制(Limit);

您能告诉我吗?

它抛出了什么异常?如果我假设正确,异常必须是类似于
无法将对象强制转换为SystemNode
或类似的异常。在这种情况下,您必须将类型
对象
强制转换为所需的类型,例如
(SystemNode)myObject….
。Aousaf rashid我尝试过,但结果是相同的。我想这个Return()方法需要一个泛型类型参数或具有已知的数据类型。在第二种情况下,它具有已知类型。但是在第一种情况下,您发送了一个匿名对象,并且在泛型参数中没有指定类型。参考:我的自定义类SystemNode中的一个属性是DateTime类型,而在neo4j数据库中,相关属性是DateTime类型,看起来像这样:“2020-02-13T09:29:20.4700000”我调试了BoltGraphClient源代码,发现当客户端中StatementResultPer类中的ParseAnonymousAsDynamic方法试图从数据库中解析datetime属性时,会引发上述帖子中描述的异常。当我在neo4j graph ti string中更改datetime属性的类型时,问题得到了解决,anonymouse解析器工作正常。它引发了什么异常?如果我假设正确,该异常必须类似于
无法将对象强制转换为SystemNode
或类似的异常。在这种情况下,您必须将类型
对象
强制转换为所需的类型,例如
(SystemNode)myObject….
。Aousaf rashid我尝试过,但结果是相同的。我想这个Return()方法需要一个泛型类型参数或具有已知的数据类型。在第二种情况下,它具有已知类型。但是在第一种情况下,您发送了一个匿名对象,并且在泛型参数中没有指定类型。参考:我的自定义类SystemNode中的一个属性是DateTime类型,而在neo4j数据库中,相关属性是DateTime类型,看起来像这样:“2020-02-13T09:29:20.4700000”我调试了BoltGraphClient源代码,发现当客户端中StatementResultPer类中的ParseAnonymousAsDynamic方法试图从数据库中解析datetime属性时,会引发上述帖子中描述的异常。当我在neo4j graph ti字符串中更改了datetime属性的类型时,问题得到了解决,并且匿名解析器工作正常。
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);