Inspekcja w ramach Entity Framework

Po przejściu przez Entity Framework mam kilka pytań dotyczących implementacji inspekcji w Entity Framework.

Chcę przechowywać każdą wartość kolumny, która jest tworzona lub aktualizowana do innej tabeli kontroli.

W tej chwili wywołuję SaveChanges (false), aby zapisać rekordy w DB (wciąż zmiany w kontekście nie są resetowane). Następnie uzyskaj dodane | zmodyfikowane rekordy i pętla przez GetObjectStateEntries. Ale nie wiem, jak uzyskać wartości kolumn, w których ich wartości są wypełniane przez zapisany proc. tj. utworzone, zmodyfikowane dane itp.

Poniżej znajduje się przykładowy kod, nad którym pracuję.

// Get the changed entires( ie, records)
IEnumerable<ObjectStateEntry> changes = context.ObjectStateManager.GetObjectStateEntries(EntityState.Modified);

// Iterate each ObjectStateEntry( for each record in the update/modified collection)
foreach (ObjectStateEntry entry in changes)
{
    // Iterate the columns in each record and get thier old and new value respectively
    foreach (var columnName in entry.GetModifiedProperties())
    {
        string oldValue = entry.OriginalValues[columnName].ToString();
        string newValue = entry.CurrentValues[columnName].ToString();

        // Do Some Auditing by sending entityname, columnname, oldvalue, newvalue
    }
}

changes = context.ObjectStateManager.GetObjectStateEntries(EntityState.Added);

foreach (ObjectStateEntry entry in changes)
{
    if (entry.IsRelationship) continue;
    var columnNames = (from p in entry.EntitySet.ElementType.Members
                       select p.Name).ToList();

    foreach (var columnName in columnNames)
    {
        string newValue = entry.CurrentValues[columnName].ToString();

        // Do Some Auditing by sending entityname, columnname, value
    }
}

questionAnswers(2)

yourAnswerToTheQuestion