0

数据库中的实际表具有单独的整数字段,用于存储、 、yearmonth值(均以 UTC 表示)(秒和毫秒与我的任务无关,被认为为零)。dayhourminute

不用说,在应用程序端只有一个DateTime类型的字段,并将所有转换隐藏在实体框架模型代码的掩护下,将非常方便。

关于如何做到这一点的任何指示?我对实体框架还不是很有经验。

4

1 回答 1

1

我之前回答了一个类似的问题:我可以使用 Data Annotations 或 Fluent 在数据存储和实体类之间转换值吗?

据我所知,目前这在 EF 中是不可能的。

您可以做的是公开一个未映射到数据库的辅助属性。

[NotMapped]
public DateTime DateTime
{
  get { return new DateTime( Year, Month, Day, Hour, Minute, 0, DateTimeKind.Utc); }
  set
  {
    Year = value.Year;
    Year = value.Year;
    Month = value.Month;
    Day = value.Day;
    Hour = value.Hour;
    Minute = value.Minute;
  }
}
于 2012-11-19T22:55:40.247 回答