Для начала вы можете присоединить обработчик к событию PropertyChanged в базовом классе Transmission, что позволит вам вызывать метод Log при каждом изменении свойства в любом из ваших подклассов.
Событие INotifyPropertyChanged.PropertyChanged
Это, однако, сработает, когда будут внесены какие-либо изменения, в том числе, когда Entity Framework создает объекты, так что это только половина пути.
Редактировать
Если вы создаете новое свойство в классе Transmission (логический флаг), вы можете использовать его в своих подпрограммах объекта доступа к данным, чтобы указать, следует ли включать ведение журнала.
Этот флаг устанавливается всегда только после завершения любого действия Entity Framework для каждого объекта, поэтому регистрируются только изменения свойств, относящиеся к вашему коду.
Не элегантное решение, но я не вижу другого пути.
Редактировать
Только что посмотрел на базовые члены EntityObject, и есть свойство (перечисление) с именем EntityState.
Свойство EntityObject.EntityState
Это свойство имеет значение «Отдельно», когда объект создается (не привязан к контексту объекта) с помощью Entity Framework, и после него изменяет свое значение на «Добавлен», «Удален», «Изменен» или «Не изменен». добавляется (в зависимости от состояния объекта).
Проверяя, является ли значение чем-то отличным от «Detached», вы можете определить, следует ли включить ведение журнала.