2010-11-24 2 views
2

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

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

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

ответ

3

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

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

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

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