业务实体中字段更改跟踪的模式

本文关键字:跟踪 模式 实体 字段 业务 | 更新日期: 2023-09-27 18:22:12

我正在雇佣一些业务人员租用办公室等。客户的一个要求是,产品应该能够跟踪特定实体的属性变化(例如Tenant类中的BusinessName属性)。我提出了一个解决方案,即每个属性都有一个decorator类。会有一个"注意到变化"的日期,所以基于这个日期,我想用f.e BusinessNameDecorator:TenantRecordor:ITenant类来结束原来的Tenant:ITenan类。

原始溶液类似于

问题是代码开始有味道,管道进入了业务类。是否有任何经过验证的解决方案或模式来跟踪更改并将其持久化到业务实体中?我不想重新发明轮子,但不幸的是我什么也没找到。

谢谢你的帮助附言:很抱歉我的英语不好:)

业务实体中字段更改跟踪的模式

您可以尝试设置类似EF的POCO支持的机制。当您将POCO与实体框架一起使用时,EF仍然能够跟踪实体对象上哪些属性发生了更改。

基本上EF使用Reflection.Emit在运行时创建派生自POCO的类,并添加更改跟踪行为(前提是POCO的跟踪属性声明为虚拟)。

实现这一点可能非常复杂,但如果你必须将该机制应用于大量的类,这可能是非常值得的