2012-11-19 24 views
0

數據庫中的實際表格具有單獨的整數字段,用於存儲year,month,day,hour,minute值(全部採用UTC)(秒和毫秒與我的任務無關並且視爲等於零)。當值存儲在實際數據庫的一組Int字段中時,我可以在實體框架模型一側使用單個DateTime字段嗎?

不用說,在應用程序端只有一個DateTime類型的字段,並隱藏實體框架模型代碼掩蓋下的所有轉換將非常方便。

任何方向如何做到這一點?我對Entity Framework還不是很有經驗。

回答

1

我回答過類似的問題早:Can I use Data Annotations or Fluent to convert a value between data store and entity class?

據我所知,這是目前不可能在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; 
    } 
} 
+0

謝謝。我是否將此代碼添加到'.... Designer.cs'文件或其中?我已經從真實的數據庫中創建了模型,並使用設計器進行了修改。 – Ivan

+1

可能是部分類,否則在代碼重新生成時將被覆蓋。 – Pawel

+0

它在你的模型類中 - 具有Year,Month等屬性的類。你在做代碼優先還是數據優先? –

相關問題