(对不起,我的英语不好)
嘿,我需要记录数据库上发生的所有更改以进行审计。当我插入或删除实体时,这很容易,但是当我更新某些内容时,我需要保存已更改的属性以及从/到哪些值。我的域服务是 DbDomainService。如何获得更改?我是否需要访问数据库以查看旧值并自己进行比较?
(对不起,我的英语不好)
嘿,我需要记录数据库上发生的所有更改以进行审计。当我插入或删除实体时,这很容易,但是当我更新某些内容时,我需要保存已更改的属性以及从/到哪些值。我的域服务是 DbDomainService。如何获得更改?我是否需要访问数据库以查看旧值并自己进行比较?
有更优雅的方法可以做到这一点(例如,使用 Aspect 编码技术),但我有一个孤立的案例就是这样做的。这是服务器端 WCF RIA 服务的标准更新,适用于您允许发生更新的每个实体。
public void UpdatePackingSlip(PackingSlip currentPackingSlip)
{
var BeforeUpdate_PackingSlip = this.ChangeSet.GetOriginal(currentPackingSlip);
//at this point you can compare the original values from the updated values, and capture
// whatever you want todo
只要确保您不更改将对象附加回对象上下文的代码即可。