Большинство примеров, которые я видел в Интернете, показывают отслеживание изменений объекта в контексте WinForms / WPF. Или, если он находится в сети, используются связанные объекты, поэтому изменения, внесенные в каждый объект, можно отслеживать.
В моем сценарии объекты отключаются, как только они покидают уровень данных (отображаются в бизнес-объекты в WCF и отображаются в DTO в приложении MVC)
Когда пользователи вносят изменения в объект в MVC (например, изменяют свойство 1 поля), как мне отправить это изменение из представления вплоть до БД?
Я хотел бы иметь таблицу аудита, в которой сохраняются изменения, внесенные в конкретный объект. Я хотел бы сохранить значения до и после объекта только для свойств, которые мы изменили.
Я могу придумать несколько способов сделать это
1) Реализуйте флаг IsDirty для каждого свойства для всех моделей на уровне MVC (или в javascript?). Распространите эту информацию обратно на уровень сервиса и, наконец, на уровень данных.
2) Было бы здорово иметь этот механизм отслеживания изменений на уровне сервиса, но как я могу затем отслеживать «исходные» значения после того, как измененные значения были переданы обратно из MVC?
3) Триггеры базы данных? Но я не знаю, с чего начать. Это вообще возможно?
Существуют ли какие-либо известные реализации отслеживания изменений объектов для n-уровневого решения mvc-wcf?
Пример таблицы аудита:
Audit table
Id Object Property OldValue NewValue
--------------------------------------------------------------------------------------
1 Customer Name Bob Joe
2 Customer Age 21 22
SaveChanges()
. Какой у Вас вопрос? - person Federico Berasategui   schedule 22.07.2013