ObjectContext的SavingChanges:找出哪些列发生了变化?



我正在处理ObjectContext的SavingChanges事件来时间戳条目。要求是,如果只有 ColumnA 发生了更改,则当条目更改时,我不会对条目添加时间戳。

有没有办法找出在此事件期间哪些列发生了变化(正在改变)?

这应该对您有用,这将遍历任何已添加/修改的条目,如果有超过 1 个修改的属性,并且它不是"ColumnA",您可以修改时间戳:

public int SaveChanges()
{
     foreach( ObjectStateEntry entry in ObjectStateManager.GetObjectStateEntries( EntityState.Added | EntityState.Modified ) )
     {
         var properties = entry.GetModifiedProperties();
          if (!(properties.Count() == 1 && properties.First() == "ColumnA"))
          {
              //modify timestamp here
          }
     }
    return base.SaveChanges();
}

相关内容

  • 没有找到相关文章

最新更新