数据库中的实际表具有单独的整数字段,用于存储、 、year
和month
值(均以 UTC 表示)(秒和毫秒与我的任务无关,被认为为零)。day
hour
minute
不用说,在应用程序端只有一个DateTime
类型的字段,并将所有转换隐藏在实体框架模型代码的掩护下,将非常方便。
关于如何做到这一点的任何指示?我对实体框架还不是很有经验。
数据库中的实际表具有单独的整数字段,用于存储、 、year
和month
值(均以 UTC 表示)(秒和毫秒与我的任务无关,被认为为零)。day
hour
minute
不用说,在应用程序端只有一个DateTime
类型的字段,并将所有转换隐藏在实体框架模型代码的掩护下,将非常方便。
关于如何做到这一点的任何指示?我对实体框架还不是很有经验。
我之前回答了一个类似的问题:我可以使用 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;
}
}