Как записать в журнал изменений при вызове Entity Frameworks SaveChanges ()? - PullRequest
2 голосов
/ 24 ноября 2010

Сначала я использую Entity Frameworks Code. У меня есть одна сущность, для которой мне нужно вести историю изменений. Эта сущность имеет двойное свойство, и при ее изменении мне нужно записать сумму изменения суммы и дату ее возникновения. Это означает, что мне нужно старое значение, новое значение вычитать и публиковать всякий раз, когда это значение изменяется или когда dbContect.SaveChanges() вызывается.

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

Как я могу перехватить изменения в этой сущности, чтобы я мог записать в журнал изменений?

1 Ответ

3 голосов
/ 24 ноября 2010

Вы можете прослушать событие ObjectContext.SavingChanges , а затем использовать свойство ObjectContext.ObjectStateManager для поиска ObjectStateEntry (s) для объекта введите, что вас интересует.

ObjectStateEntry имеет свойства для доступа к CurrentValues и OriginalValues или только исходные значения для обновляемых свойств с использованием метода GetUpdatableOriginalValues.

Примечание: я не проверял это, но, надеюсь, это будет работать для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...