ObjectContext's SavingChanges: find out which columns have changed?

1.3k views Asked by At

I'm handling ObjectContext's SavingChanges event to timestamp entries. The requirement is that, if only ColumnA has changed, I don't timestamp the entry when it changes.

Is there a way that I can find out which columns have changed (are changing) during this event?

1

There are 1 answers

2
Mark Oreta On BEST ANSWER

This should work for you, this will loop through any Added/Modified entries, and if there is more than 1 modified property, and it's not "ColumnA" it you can modify the timestamp:

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();
}