Ef Core - аудит изменений, включая свойства навигации - PullRequest
0 голосов
/ 04 июня 2018

Нам необходимо внедрить полный журнал аудита изменений для совокупной сущности под названием Project, где пользователи могут видеть, что менялось при каждом сохранении, а также значения этих изменений до и после.Сущность содержит несколько дочерних коллекций (например, коллекцию сущностей TeamMember).

Существуют такие параметры, как EF Plus (http://entityframework -plus.net / ), который управляет аудитом дляВы или мы могли бы переопределить EFs savechanges () и вручную писать в нашу собственную таблицу аудита.

Где все сложно, там, где у вас есть свойство навигации.Любые дочерние коллекции, такие как TeamMembers, рассматриваются как отдельная запись в трекере изменений и, следовательно, будут регистрироваться как обновление независимо от проекта.Нам нужно иметь возможность отслеживать все изменения для конкретного проекта, то есть всего, что изменилось в этом графе объектов.

После тщательного поиска в Интернете мы немного растерялись в отношении того, что попробовать.Опция, которую мы рассматриваем сейчас, заключается в сериализации в JSON всей сущности Проекта до и после сохранения в журнал аудита.Затем нам нужно написать собственную логику сравнения, чтобы увидеть, что изменилось, и вернуть ее в пользовательский интерфейс.Это кажется ненужной сложностью.

Если кто-то в сообществе делал это раньше и у него есть хороший подход или какие-либо идеи, это было бы очень полезно.

...