我正在嘗試爲我的模型中的實體添加CreatedDate
屬性,並使用EF5 Code First。我希望這個日期不會被更改一次,我希望它是一個UTC日期。我不想使用構造函數,因爲我的模型中有很多實體要從包含CreatedDate
屬性的抽象類繼承,並且我無法使用接口實施構造函數。將CreatedDate添加到使用實體框架的實體5代碼優先
我已經嘗試了不同的數據說明,我試圖寫一個數據庫初始化,將拿起一個特定的實體類型和正確的table_name
和column_name
一個getdate()
默認值寫入一個ALTER約束,但我一直沒能正確編寫該代碼。
請不要將我引用到AuditDbContext - Entity Framework Auditing Context或EntityFramework.Extended工具,因爲他們不會在這裏做我所需要的。
UPDATE
我CreatedDate
是SaveChanges()
空,因爲我傳遞一個ViewModel我的看法,它正確地沒有叫這CreatedDate
審計屬性。即使我將模型傳遞給了我的視圖,我也不會在視圖中編輯或存儲CreatedDate
。
我讀here,我可以添加[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
,這會告訴EF插入和更新後正確的存儲CreatedDate
,但不允許它通過我的應用程序進行更改:但我只是通過增加該屬性得到Cannot insert explicit value for identity column in table when IDENTITY_INSERT is set to OFF
錯誤。
我即將切換到EF Model First,因爲在Code First中實現這個簡單的數據庫要求是荒謬的。
只有在您的課堂上有註釋的情況下,我纔會使用SaveChanges方法回答。 – Maslow
@Rusty Divine:出於某種原因總是將它設置爲01/01/1900 12:00:00 AM –
我找到了一個更好的方法來實現它:https://andy.mehalick.com/2014/02/06/ ef6-added-a-created-datetime-column-automatically-with-code-first-migrations – Dragouf