在Entity Framework中使用计算的DateTime列

时间:2012-12-14 09:22:09

标签: c# entity-framework datetime entity-framework-5 calculated-columns

StoreGeneratedPattern="Computed"timestamp类型的列上完美运行。但是你不能将TimeStamp显示为人类可读的形式。

因此,您无法向用户显示“此行已在{TimeStamp}上修改”,因为您无法将SQL时间戳解析为DateTime。

现在我还可以为DateTime列创建计算列,这样我就不需要手动设置了吗? myEntity.LastModification = DateTime.Now

更不用说如果某个用户真的想要通过简单地改变他的计算机时间来做坏事,就会非常容易出错。

1 个答案:

答案 0 :(得分:1)

是,如此处所述:Is there a way to specify default values for columns? Some DateTime columns in my database are set to getdate(), but the EF is unaware of these default values

提取:

  

...如果将StoreGeneratedPattern设置为Identity(如果值仅在插入时计算)或Computed(如果在每次更新时计算),那么当您调用SaveChanges时,EF将获得在数据库中生成的值然后把它带回来更新你的对象...

编辑:要更新数据库服务器端修改日期,请按照此回答https://stackoverflow.com/a/8461681/1679310Computed设置将执行重新加载