繁体   English   中英

EF Core Oracle Timestamp with Timezone to DateTime in C#

[英]EF Core Oracle Timestamp with Timezone to DateTime in c#

使用EF Core 2.2.6我正在保存DateTime --> Oracle Timestamp(7) with Time zone : 30.07.19 18:13:23,283000000 +02:00 但是当我读回它时: 30.07.19 20:13:23,283000000 +02:00

如何在 EF 核心中明确提及没有DateTime转换?

处理 DateTimes 和 Timezones 既复杂又会让您发疯 但是,我有 3 条规则使与它们一起工作变得易于管理:

  1. 始终存储和检索 UTC 值
  2. 避免作为字符串存储或传输
  3. 如果您不能遵循规则 2(如使用 XML),至少选择一个固定的编码和文化以在每个端点上使用。 您真的不想将这些添加到您的担忧中。

但是,在某些情况下(例如日历),您必须处理时区。

另请注意, 0.07.19 18:13:23,283000000 +02:00实际上不是值。 这是值的字符串表示形式,使用用户设置获取格式和时区等详细信息。

解决了这个问题。 将驱动程序从 Devart 更改为 Oracle.EntityFrameworkCore 2.19.30

1) Devart 驱动程序在时区偏移方面遇到了一些问题。 使用 timstamp + offset 读取并在没有偏移的情况下写入 DB。

2) 一周前发布的 Oracle.EntityFrameworkCore 2.19.30 对我来说是完美的解决方案。 它解决了 1) 时区问题和 2) 性能问题(快 10 倍)。 3)我的网络应用程序中的其他一些小问题。

谢谢你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM