实体框架DateTime列 - GetDate()值插入

时间:2011-12-09 15:39:20

标签: entity-framework entity-framework-4 entity-framework-4.1

我有一个包含DateCreatedDateUpdated列的表,并使用Entity Framework将值插入/更新到数据库。

我需要DateCreated列才能在插入时获取SQL Server的GetDate()值。

DateUpdated列值应始终使用插入时的当前GetDate()值进行更新并更新两者。

对于DateCreated列,我设置了StoreGeneratedPattern="Computed",在SQL Server表上,我将列的默认值设置为GetDate(),这可以正常工作。

对于DateUpdated列,我无法找到每次更新条目时自动设置GetDate()值的方法。只有在插入条目时才设置此值。

有人可以对此有所了解。

1 个答案:

答案 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