【问题标题】:Pattern for field change track in business entities业务实体中字段更改跟踪的模式
【发布时间】:2012-02-02 20:35:41
【问题描述】:

我正在聘请一些业务人员租用办公室等。客户的一个要求是该产品应该能够跟踪特定实体的属性变化(例如租户类中的 BusinessName 属性)。我想出了一个解决方案,每个属性都有一个装饰器类。会有一个“注意到更改”的日期,因此基于该日期,我想用 f.e BusinessNameDecorator:TenantDecorator:ITenant 类结束原始 Tenant:ITenant 类。

原始解决方案类似于this

问题在于代码开始有异味,并且管道进入了业务类。是否有任何经过验证和验证的解决方案或模式来跟踪更改并将它们持久保存在业务实体中?我不想重新发明轮子,但不幸的是我没有找到任何东西。

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

【问题讨论】:

    标签: c# design-patterns


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多