【问题标题】:Entity Framework - Track changes and rollback实体框架 - 跟踪更改和回滚
【发布时间】:2011-10-27 09:37:35
【问题描述】:

目前我有一个大型实体数据模型 (.edmx),下面有一个数据库。现在,我想为使用我网站的人提供编辑这些实体的选项,但前提是我批准了更改。

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

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

1) 使用以下内容创建一个实体:[ID]、[ChangeApplyDate] [ChangeApproveDate] [更改前的实体] [更改后的实体] [Accepted (boolean)]

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

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

【问题讨论】:

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


    【解决方案1】:

    这里有两件事:

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

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

    【讨论】:

    • 我稍后会阅读您的链接,但如果使用第二个选择,我将在同一个表中拥有多个版本的实体(但带有批准标志)不会浪费大量数据库空间?
    • 我查看了链接,这是一个天才的解决方案。非常感谢,这对我很有帮助!
    猜你喜欢
    • 2011-04-23
    • 1970-01-01
    • 2014-12-08
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    相关资源
    最近更新 更多