我有一个包含DateCreated
和DateUpdated
列的表,并使用Entity Framework将值插入/更新到数据库。
我需要DateCreated
列才能在插入时获取SQL Server的GetDate()
值。
DateUpdated
列值应始终使用插入时的当前GetDate()
值进行更新并更新两者。
对于DateCreated
列,我设置了StoreGeneratedPattern="Computed"
,在SQL Server表上,我将列的默认值设置为GetDate(),这可以正常工作。
对于DateUpdated
列,我无法找到每次更新条目时自动设置GetDate()
值的方法。只有在插入条目时才设置此值。
有人可以对此有所了解。
答案 0 :(得分:7)
如果您希望数据库设置DateUpdated
,则可以使用触发器将值设置为getdate()
。如果您为StoreGeneratedPattern="Computed"
设置DateUpdated
,我相信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