Если вы используете Linq to SQL, метод GetModifiedMembers принимает аргумент tybe Object и возвращает массив объектов System.Data.Linq.ModifiedMemberInfo. Каждый класс Table в DataContext имеет метод GetModifiedMembers, который можно вызывать для любого объекта.
http://msdn.microsoft.com/en-us/library/system.data.linq.itable.getmodifiedmembers.aspx
В Entity Framework, используя ObjectStateManager, можно получить доступ ко всей этой информации об изменениях, такой как состояние объекта (добавлено / изменено / удалено), измененные свойства, исходные и текущие значения
IEnumerable<ObjectStateEntry> changes =
this.ObjectStateManager.GetObjectStateEntries(
EntityState.Added | EntityState.Deleted | EntityState.Modified);