【问题标题】:Retrieving DateTime from SQL Server DB从 SQL Server 数据库中检索 DateTime
【发布时间】:2017-02-06 17:27:01
【问题描述】:

我正在使用实体框架并将 DateTime 类型存储为“Utc”。

对于从数据库中检索此 DateTime 时的单元测试目的,它会出现“未指定”种类和不同的刻度值。

我了解 Entity Framework 无法自动为其分配 Utc 类型,但我不明白为什么它会出现不同的刻度值。

这是一个问题,因为我使用 Mspec 来测试检索到的值与放入 using 的值

result.Date.ShouldEqual(retrievedDate)

此语句返回 false,因为每个值的种类不同。我也试过了:

DateTime.Compare(result.Date, retrievedDate)

但由于刻度值不同,因此返回 false。

【问题讨论】:

标签: c# asp.net-mvc entity-framework datetime


【解决方案1】:

我已通过使用 DateTimeOffset 属性而不是 DateTime 来解决此问题。

微软声明:

DateTimeOffset 应被视为默认日期和时间类型 用于应用程序开发。

【讨论】:

  • 因为它明确了偏移量并避免了 UTC/本地时间的歧义。不是因为微软这么说。
  • 感谢您的解释。只是指出微软推荐它。 @PanagiotisKanavos
猜你喜欢
  • 1970-01-01
  • 2014-01-05
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
  • 2019-01-20
  • 2013-07-25
  • 2012-12-19
  • 2013-08-03
相关资源
最近更新 更多