首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实施数据库修订的最佳实践是什么?

实施数据库修订的最佳实践是什么?
EN

Stack Overflow用户
提问于 2011-03-03 22:55:13
回答 2查看 665关注 0票数 2

实施数据库修订的最佳实践是什么?

假设我有一个名为Test的表和另一个名为Test_Rev的修订表。

假设我将跟踪Test的记录更改到Test_Rev表中。

在保存之前,我会得到修改后的实体,这样我就可以修改需要修改的表了。

我使用Producer-Consumer模式创建了一个单独的线程,然后将需要修改的实体传递给该线程。

使用访问者模式,我扩展了我的类的行为,以便我可以修改它们。

它工作得很好,但我需要知道最佳实践。

一位朋友告诉我,把修改作为我需要修改的表格的触发器。

顺便说一下,我使用的是VS2010、SQL Server2005、Entity Framework

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-03 23:04:44

这取决于你对数据库中的逻辑是否满意。如果没有问题,可以使用DB触发器。如果您希望在应用程序中保留逻辑,请在执行base.SaveChanges之前覆盖派生的ObjectContext中的SaveChanges并运行修订(添加修订实体)。唯一的问题可能是使用自动生成的密钥“审核”新添加的实体-只有在调用base.SaveChanges之后才知道密钥。因此,在这种情况下,您必须在保存更改后审计添加的实体,并再次调用base.SaveChanges

我不认为有任何理由为此有单独的线程-而且ObjectContext不是线程安全的。

票数 1
EN

Stack Overflow用户

发布于 2011-03-03 23:30:38

在数据库中,这称为审计,通常通过触发器来完成。在任何情况下都不要在应用程序中这样做,否则会错过更改,唯一合适的地方是在数据库中这样做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5182348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档