我需要在我的对象上实现添加/编辑/删除的审计跟踪,我正在使用ORM(XPO)来定义我的对象等.我实现了一个触发的审计跟踪对象
OnSaving
OnDeleting
在基础对象中,我将更改存储在Audit-AuditTrail(Mast-Det)表中,以进行字段更改.使用一些称为的方法服务.
如何在OOP代码中实现审计跟踪?请分享您的见解?任何模式等?最佳做法等?另一件事是如何在运行单元测试时禁用审计,因为我不需要审计它们,但是因为基础对象具有代码.
对象(编辑/添加/ del)的更改以及需要审核的字段更改
如果可以的话,数据库触发器是首选的方法.
但是,最近我不得不在客户端代码中执行此操作,最后编写了一个类,该对象在打开进行编辑时创建了对象的深(值)副本,在保存时比较了两个对象(使用ToString()只有)并将任何更改写入审计表.
编辑:我在每个属性上都有一个[Audit]属性,我想考虑审计并使用反射来查找它们,使得该方法对于被审计的对象不具体.