C#学习教程:无法使用C#客户端反序列化datetime属性Neo4j分享


无法使用C#客户端反序列化datetime属性Neo4j

我正在尝试使用C#客户端从Neo4j中获取强类型对象。 这一切都有效,直到我添加DateTime属性。

我已成功将数据插入Neo4j数据库,我可以使用控制台查看它。 我也可以查询数据,但我不能返回任何强类型对象,因为反序列化似乎失败了。

我正在使用参数来插入数据:

 _graphClient.Cypher .WithParams(new { id = node.Id, createdAt = node.CreatedAt, lastModified = node.LastModified }) .Create("(c { " + "Id: {id}, " + "CreatedAt: {createdAt}, " + "LastModified: {lastModified} } )") 

我获取数据的查询非常基本:

 nodes = _graphClient.Cypher .Match("(n)") .Return((n) => n.As()).Results.ToList(); 

但后来我收到一个错误……

日志文件说明以下内容:

参数名称:content —> Newtonsoft.Json.JsonReaderException:无法将字符串转换为DateTime:17-9-2015 21:57:14 +00:00。 路径’a’,第1行,第32位。

数据看起来像这样(从日志中输入):

 "data" : { "Id" : 31, "LastModified" : "2015-09-17T21:57:14Z", "CreatedAt" : "2015-09-17T21:57:14Z", } 

我的c#类型定义:

 public class NeoObject { public int Id { get; set; } public DateTime CreatedAt { get; set; } public DateTime LastModified { get; set; } } 

要么

 public class NeoObject2 { public int Id { get; set; } public DateTime? CreatedAt { get; set; } public DateTime? LastModified { get; set; } } 

如果我没记错,你需要使用DateTimeOffset类型作为你的属性。

 public class NeoObject { public int Id { get; set; } public DateTimeOffset CreatedAt { get; set; } public DateTimeOffset LastModified { get; set; } } 

编辑以前是这种情况,但似乎最近的更新添加了对DateTime对象类型的支持。 您使用的是什么版本的Neo4jClient? 你试过DateTimeOffset吗?

上述就是C#学习教程:无法使用C#客户端反序列化datetime属性Neo4j分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031640.html

发表评论

邮箱地址不会被公开。 必填项已用*标注