Регистрация изменений через Entity Framework - PullRequest
3 голосов
/ 02 сентября 2011

Может кто-нибудь подсказать мне хорошую стратегию для реализации отслеживания изменений в моей модели Entity Framework?

У меня есть около 20 объектов для отслеживания изменений (доступ осуществляется через фасады / единицы работы), и мне нужно иметь возможность отображать, кто что изменил при отображении записи в пользовательском интерфейсе.

Я знаю, что есть Context.OnSavingChanges (или как там его называют), но я бы, вероятно, хотел бы получить доступ к изменениям в запросах, таких как context.MyEntity.ChangeLog

Должен ли я создавать сущность ChangeLog, добавлять ассоциации ко всем сущностям или есть ли возможность через сохранение?

Richard

P.s. Хороших выходных!

Ответы [ 3 ]

3 голосов
/ 02 сентября 2011

Entity Framework - ORM = API, отвечающий за сохранение и загрузку из базы данных.То, что вы сохраняете или загружаете, полностью зависит от вас, поэтому, если вы хотите отслеживать изменения, вы должны закодировать их.

Наиболее распространенным подходом действительно является использование OnSavingChanges или переопределение SaveChanges, потому что вы обычно сохраняете изменения, выполненные одним пользователем.

0 голосов
/ 10 сентября 2017

Старый вопрос, но для тех, кто ищет аудит изменений в EF> = 6 или EF Core, я работал над библиотекой с открытым исходным кодом Audit.EntityFramework , которую вы можете попробовать.

0 голосов
/ 10 мая 2013

См. FrameLog , библиотеку с открытым исходным кодом, которую я написал для этой цели.Вы вызываете его из SaveChanges, и он имеет дело со всем остальным, включая предоставление вам строго типизированного API для запросов к журналам.

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