我在使用Entity Framework从PostgreSQL数据库检索DateTimeOffset时遇到了问题。通过研究,我发现了这篇文章,帮助我理解了问题所在,但我无法找出如何解决它。
我有一个API,允许用户上传文件(大多数是图像),并提取图像拍摄日期并将其存储在数据库中。大多数情况下都很好用。然而,如果日期在2007年之前的3月11日至某个时间之间(日期根据年份而变化),则保存到数据库中没有问题,但在尝试检索行时,会抛出以下错误:
“本地dateTime参数的UTC偏移量与偏移量参数不匹配。”
我在postgreSQL中为CameraDate字段使用了“Timestamp With Time Zone”类型。我无法弄清楚如何使其正常工作。如果可以在不更改数据库的情况下完成,则最好不过。
示例:
我有一个API,允许用户上传文件(大多数是图像),并提取图像拍摄日期并将其存储在数据库中。大多数情况下都很好用。然而,如果日期在2007年之前的3月11日至某个时间之间(日期根据年份而变化),则保存到数据库中没有问题,但在尝试检索行时,会抛出以下错误:
“本地dateTime参数的UTC偏移量与偏移量参数不匹配。”
我在postgreSQL中为CameraDate字段使用了“Timestamp With Time Zone”类型。我无法弄清楚如何使其正常工作。如果可以在不更改数据库的情况下完成,则最好不过。
示例:
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; }
}
CameraDate
字段的数据类型是什么吗? - Matt Johnson-Pint