在您的实体上实施跟踪更改的最佳方法是什么?

时间:2009-10-30 12:58:06

标签: c#

要求是跟踪对实体所做的所有更改,跟踪它以了解谁做了这些更改,何时做了等等。例如,我有一个Person实体,并且用户更改了该人的姓名;我想把这些信息保存在某处。

最好的方法是什么?或者是否有现成的框架来实现这一目标。

我知道SQL 2008支持跟踪更改,但现在不是一个选项,因为我们的很多客户已经在使用SQL 2005。

企业库的日志记录应用程序块是否适合此要求?我已经检查了一下但是,我不知道如何使用它来跟踪谁做了,有什么价值变化,什么时候做了,等等。

我们正在为我们的应用程序使用C#和.NET框架。

2 个答案:

答案 0 :(得分:1)

Standrad方式是使用来自INotifyPropertyChanging和INotifyPropertyChanged接口的事件。并为集合INotifyCollectionChanged。订阅此活动后,您可以随时随地存储信息。

如果您使用MSSQL,可以尝试Query Notifications

答案 1 :(得分:0)

某种AOP解决方案(如企业库中的解决方案)应该为您提供足够的可能性来创建这样的解决方案。

您可以订阅属性调用方法并记录信息。