我在网上看到的大多数示例都显示了 WinForms/WPF 上下文中的对象更改跟踪。或者,如果它在网络上,则使用连接的对象,因此可以跟踪对每个对象所做的更改。
在我的场景中,对象一旦离开数据层就会断开连接(映射到 WCF 中的业务对象,并映射到 MVC 应用程序上的 DTO)
当用户对 MVC 上的对象进行更改(例如,更改 1 个字段属性)时,我如何将更改从视图发送到数据库?
我想要一个审计表,它保存对特定对象所做的更改。我要保存的是对象的前后值,仅用于我们修改的属性
我可以想到几种方法来做到这一点
1)为MVC层(或javascript?)中的所有模型的每个属性实现一个IsDirty标志。将该信息一直传播到服务层,最后是数据层。
2) 在服务层中拥有这种更改跟踪机制会很棒,但是在从 MVC 传回修改后的值之后,我将如何跟踪“原始”值?
3) 数据库触发器?但我不确定如何开始。这甚至可能吗?
对于 n 层 mvc-wcf 解决方案,是否有任何已知的对象更改跟踪实现?
审计表示例:
Audit table
Id Object Property OldValue NewValue
--------------------------------------------------------------------------------------
1 Customer Name Bob Joe
2 Customer Age 21 22