2012-02-02 43 views
0

Iam在一些业务员工上做租赁办公室等。客户的一个要求是该产品应该能够跟踪特定实体的属性变化(租户类中的f.e. BusinessName属性)。我想出了一个解决方案,每个属性都会有一个装饰器类。将有一个日期,当“更改被注意到”,所以根据该日期我想包装原来的租客:ITenant类与f.e BusinessNameDecorator:TenantDecorator:ITenant类。业务实体中现场变更轨迹的模式

原液是一样的东西this

针对的问题是代码开始闻和管道到达业务类。是否有任何证明和验证的解决方案或模式用于跟踪变更并将其保留在业务实体中?我不想重新发明轮子,但不幸的是我没有找到任何东西。

谢谢您的帮助 P.S:对不起,我的英语不好:)

回答

0

您可以尝试建立类似的EF POCO支持的机制。当您将实体框架与POCO一起使用时,EF仍然会管理跟踪实体对象上哪些属性发生了变化。

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

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