7

我有一個表DateCreatedDateUpdated列,並使用實體框架插入/更新值到數據庫。實體框架DateTime列 - GetDate()值插入

我需要DateCreated列,以獲得SQL Server的GetDate()值只有插入。

DateUpdated列值始終應更新,當前值爲GetDate()插入和更新兩者。

對於DateCreated列,我已經設置了StoreGeneratedPattern="Computed",並且在SQL Server表上我已經將該列的默認值設置爲GetDate(),這很好地按預期工作。

對於DateUpdated列,我找不到每次更新條目時自動設置GetDate()值的方法。只有在插入條目時才設置此值。

可能有人闡明這一些輕。

+0

你試過'StoreGeneratedPattern =「身份」'? –

+1

爲什麼不getdate作爲datecreated工作的數據庫默認值?它不應該覆蓋它,如果你不更新它... –

+0

我同意DMoses - 默認值僅填充在行創作。 –

回答

7

如果您想要DateUpdated由數據庫設置,您可以使用觸發器將值設置爲getdate()。我相信,如果你DateUpdated設置StoreGeneratedPattern="Computed" EF也將獲得由觸發器設置的值。

僅供參考,您的觸發會是這個樣子(你必須根據你的表的PK更新):

create trigger MyTable_UpdatedTrigger 
on MyTable 
for update 
as 
begin 
    update t set DateUpdated = getdate() 
    from MyTable t 
     join inserted i on t.Id = i.Id 
end