【问题标题】:Get list of changed properties on EF 4.2 Code Only仅获取 EF 4.2 代码上更改的属性列表
【发布时间】:2012-03-16 20:22:09
【问题描述】:

(对不起我的英语不好)

嘿,我需要记录数据库上发生的所有更改以进行审核。当我插入或删除一个实体时,这很容易,但是当我更新某些东西时,我需要保存哪些属性已更改以及从/到哪些值。我的域服务是 DbDomainService。如何获得更改?我是否需要访问数据库才能查看旧值并自己进行比较?

【问题讨论】:

标签: entity-framework entity-framework-4 wcf-ria-services ef4-code-only


【解决方案1】:

有更优雅的方法可以做到这一点(例如,使用 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

只要确保您没有更改将对象附加到的代码 对象上下文。

【讨论】:

  • codputer,这是我的第一个猜测,但 this.ChangeSet.GetOriginal(currentEntity) 总是返回 null。我不知道这是否是 RIA 的事情......通过提琴手,我可以看到只有更改的值(而不是原始值)被发送到 SubmitChanges 上的服务器。
猜你喜欢
  • 1970-01-01
  • 2012-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-01
  • 2021-02-05
相关资源
最近更新 更多