我在使用Entity Framework从PostgreSQL数据库中检索DateTimeOffset
时遇到问题。至于研究问题,我发现this article可以帮助我理解问题所在,但我无法弄清楚如何解决问题。
我有一个API,允许用户上传文件(主要是图像),并提取图像的拍摄日期并将其存储在数据库中。它大部分时间都很好用。但是,如果日期是在2007年3月11日到4月某个时间(日期因年份而异),它会保存到数据库中,但在尝试检索行时会抛出错误:
本地dateTime参数的UTC偏移量与偏移量参数不匹配。
我在postgreSQL中使用Timestamp With Time Zone
类型的CameraDate
字段。我无法弄清楚如何使其正常工作。如果有办法在不改变数据库的情况下这样做。
示例:
2001-04-01 10:47:17-06 Works
2001-03-01 10:47:17-06 Works
2001-03-13 10:47:17-06 Doesn't work
2007-03-13 10:47:17-06 Works
这是我的代码:
Context.Files.Add(file);
Context.Entry(file).Reload();
文件类看起来像这样(为了简洁而删除了一些字段):
public class File
{
[Column("FileId")]
public override Guid ID { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DisplayId { get; set; }
public DateTimeOffset? CameraDate { get; set; }
}
答案 0 :(得分:2)
好的,这似乎是npgsql或npgsql.EntityFramework中DateTimeOffset
的错误。似乎还记录了其他几个问题in their issue tracker。特别是issue #542非常接近 - 但是有一个不同的异常消息。
我建议您在那里创建一个新问题,因为他们最好帮助进一步诊断。