存储过程是使用服务器修改时间可靠地设置日期时间字段的唯一方法吗?

时间:2011-03-23 09:26:24

标签: .net entity-framework-4 mapping

以下是要求:

  • 我们有一个包含lastModifiedOn列的表格。
  • 我们希望该列能够真实,可靠地反映数据库中上次更新字段的时间(字节)。
  • 我们希望在使用Entity Framework修改表的内容时仍然如此。

现在,我们正在使用MSL中的ModificationFunctionMapping/UpdateFunction元素和SSDL文件中定义的存储过程。

是否有其他方法可以实现相同的效果,而无需使用存储过程?

编辑: 最后,我还不够清楚。

当我说“存储过程[在] SSDL文件中定义”时,我的意思是说存储过程的名称是在SSDL文件中定义的 - 但问题是我必须使用这些来部署存储过程数据库上的名称,在多个EF模型的情况下可能会产生问题。 现在我已经理解了在SSDL <CommandText>元素中使用<Function>元素,我已经能够将自定义SQL与实体框架模型的其余部分一起放置 - 这解决了我的问题。 / p>

2 个答案:

答案 0 :(得分:0)

您可以使用插入lastModifiedOn的触发器覆盖current_timestamp列。我假设数据库服务器是一个Sql Server。

答案 1 :(得分:0)

我同意Filip,在我们的应用程序中,我们还有一个LastModifiedOn列,我们在表上创建了一个触发器,只要在表中更新了行,就会使用当前时间戳更新此列。

你需要在桌面上创建两个触发器, 1.更新触发器:每当更新行时,将使用当前时间戳更新LastModifiedOn列。 2.插入触发器:只要在表中创建行,它就会在LastModifiedOn列中插入当前时间戳。