0

(извините за мой плохой английский)Получить список измененных свойств на EF 4.2 Кодекса только

Эй, мне нужно регистрировать все изменения, что происходит на моей базе данных для целей аудита. Когда я вставляю или удаляю объект, это легко, но когда я что-то обновляю, мне нужно сохранить, какие свойства изменились и от/до каких значений. Служба моего домена - это DbDomainService. Как я могу получить изменения? Нужно ли мне ударить по базе данных, чтобы увидеть старые значения и сравнить их самостоятельно?

+0

Возможный дубликат [Реализация журнала аудита/История изменений с помощью MVC и Entity Framework] (http://stackoverflow.com/questions/6867459/implementing-audit-log-change-history-with-mvc-entity-framework) – Eranga

ответ

0

Существует более элегантное средство для этого (например, использование методов кодирования Aspect), но у меня был один изолированный случай, в котором я это сделал. Это стандартное обновление для служб WCF RIA Services на стороне сервера для каждого объекта, разрешающего обновления.

public void UpdatePackingSlip(PackingSlip currentPackingSlip) 
{ 

    var BeforeUpdate_PackingSlip = this.ChangeSet.GetOriginal(currentPackingSlip); 
    //at this point you can compare the original values from the updated values, and capture 
    // whatever you want todo 

Просто убедитесь, что вы не измените код, который крепит объект обратно объект контекста.

+0

codputer, это было мое первое предположение, но 'this.ChangeSet.GetOriginal (currentEntity)' всегда возвращает null. Я не знаю, является ли вещь RIA ... просматривая скрипач, я вижу, что только изменения (а не оригиналы) отправляются на сервер в SubmitChanges. – Leo

 Смежные вопросы

  • Нет связанных вопросов^_^