【发布时间】:2010-11-30 02:25:13
【问题描述】:
我一直在研究 Entity Framework 的一些审计钩子。其中许多显示旧/新值比较。这对于审计跟踪非常有用,但我正在寻找快照对象。
例如...假设我有一个管理产品的应用程序。一个产品具有多个属性和关联的其他对象。假设我更改了一个对象 10 次。还可以说,我可以查看这些对象更改的屏幕(不是审计跟踪,而是屏幕实际以只读格式显示的样子),这一点很重要。我感兴趣的是能够为所有 10 个更改(取决于我想查看的更改)检索原始 EF 产品对象(以及所有相关数据)并使用它来绑定到我的屏幕。
如果我使用的是 SQL Server,我现在应该为序列化对象使用什么类型(XML、blob 等)?这样做有意义吗?
【问题讨论】:
-
我会添加赏金以获得更详细的答案:)
-
@AnynameDonotcare 对于您要为其存储历史记录的每个表:1)添加版本列(可以是时间,可以是递增计数器)。 2)添加另一个与主表具有所有相同属性的表(但更好地扩展外键)。 3) 在更新触发器之前,如果版本列已更改 - 将旧值复制到此版本表。 4) 利润。
-
@Evk :如果您能通过简单的示例(使用
EF)添加详细答案,我将不胜感激,可以用作企业应用程序的基础(关于删除操作和 mm 关系)
标签: c# entity-framework versioning audit