实体框架 - 跟踪更改和回滚

时间:2011-08-15 16:04:21

标签: c# asp.net entity-framework logging

目前,我有一个大型实体数据模型(.edmx),下面有一个数据库。现在我想让使用我网站的人选择编辑这些实体,但只有在我批准更改之后才会这样做。

所以这意味着我想要“改变”实体但是还没有真正保存它,在我接受改变之后它将覆盖改变的实体。但是当我这样做时,我仍然希望能够在之后回滚更改。

现在我想出了一些解决方案:

  

1)创建一个类似的实体:[ID],[ChangeApplyDate] [ChangeApproveDate] [更改前的实体] [更改后的实体] [接受(布尔)]

     

2)使用更改的值和“原始”实体的链接创建一个额外的实体,并且如果它是当前批准的实体,则在该实体中具有布尔值。 (这不会创建一个新表,而是扩展表格,如“Book”,还有一些额外的属性。

现在我想知道你对这些解决方案的看法,以及你是否做过这样的事情?

1 个答案:

答案 0 :(得分:0)

这里有两件事:

  1. 保留所有先前版本的列表。看看我对这个问题的回答:Ideas on database design for capturing audit trails

  2. 控制接受更改。为此,您可以为每个表添加一个批准标记,只有您有权访问。