Как проверить, какие свойства / записи изменены, а какие нет на Редактирование записи в EF 6

Я разрабатываю приложение MVC 5 с использованием EF 6. Автоматически сгенерированный метод POST для редактирования:

public ActionResult Edit([Bind(Include = "Id,Name,Address,Phone,SSNo,D1")] ABC abc)
{
     if (ModelState.IsValid)
     {
         db.Entry(abc).State = EntityState.Modified;
         db.SaveChanges();
     }
     return View(abc);
} 

Есть ли какая-либо процедура / метод, с помощью которого я могу получить то, какие записи изменены и каковы были первоначальные значения этих записей. Я попробовал метод, отмеченный как ответ вэтот вопрос, но он не получил никаких изменений, хотя изменения были внесены, то есть цикл не повторяется.

Мой код:

 public ActionResult Edit([Bind(Include = "Id,Name,Address,Phone,SSNo,D1")] ABC abc)
 {
     if (ModelState.IsValid)
     {
          db.ABCs.Attach(abc);
          var myObjectState = ((IObjectContextAdapter)db).ObjectContext.ObjectStateManager.GetObjectStateEntry(abc);
          var modifiedProperties = myObjectState.GetModifiedProperties(); 
          foreach (var propName in modifiedProperties)
          {
                Console.WriteLine("Property {0} changed from {1} to {2}",
                propName,
                myObjectState.OriginalValues[propName],
                myObjectState.CurrentValues[propName]);
          }
          Console.ReadKey();
          db.Entry(abc).State = EntityState.Modified;
          db.SaveChanges();
          return Json(abc);
     }
     return View(abc);
 }

Модель ABC содержит много значений, отличных от указанных в параметрах метода, но я передаю только те, которые можно редактировать

То, что я пытаюсь сделать, - это вести журнал в моей базе данных обо всех изменениях, внесенных в документ. Я хочу включить только изменения и исходные значения до внесения изменений в журнал, а не полную запись.

Как я могу получить это?

Ответы на вопрос(1)

Ваш ответ на вопрос