1

基本信息:

  1. ASP.NET MVC 应用程序

  2. 使用 ADO.NET 实体框架

  3. SQL 服务器 2005

我有一些表或多或少具有主要是一对多关系的层次结构。大多数(如果不是全部)都有 Last Modified 列,我的问题只是如何最好地确保该列在整个层次结构中正确更新。我宁愿在数据库级别自动完成它,我只是不确定如何。一位同事提到触发器,同时提到它们可能不是最好的方法。我不知道是在我用来管理模型的类中还是在数据库级别执行此操作。我宁愿不必单独更新每个引用,因为这会变得乏味,而且我必须为每个级别制作一堆单独的函数。

那么我的问题是:

  1. 有没有办法在数据库级别使用我可以调用的存储过程来做到这一点?

  2. 如果不是,你会建议我在应用程序方面做些什么来最好地以编程方式处理这个问题?

如果有更多信息有帮助,我很乐意提供,我很难弄清楚如何问这个问题。

4

2 回答 2

1

另一个人在这里有相同/相似的问题。他们的意见使用触发器。这是完整的回复: Sql Server (Entity Framework): created_at , updated_at Columns

于 2009-03-13T01:55:43.023 回答
1

这取决于你希望你的惩罚在哪里。您可以通过以下两种方式之一获得它。

  • 使用触发器将更改传播到您的层次结构。当您只写一次并大量阅读时,这可能是最好的。例如:更新地址并在父记录以及地址本身上设置最后修改。

  • Just update one last modified and then query for everything when you need to see when something has been modified. This might be best if you write a lot, but read very little. eg: Only update the last modified on an address. When you query for changed records, query for records that have a last modified or records with addresses that have a last modified.

It's hard to say without knowing your situation. If you need to update all related last modified dates, then I would go the trigger route just to keep things simple.

于 2009-03-13T01:59:46.883 回答