Мне нужно разработать механизм проверки двух свойств объекта на предмет изменений.
Все свойства, которые необходимо проверить, помечены атрибутом.
Атм я
- прочитать все свойства из острого объекта через linq
- прочитать соответствующее свойство из старого объекта
- заполнить собственный объект двумя свойствами (старое и новое значение)
В коде вызов рабочего класса выглядит следующим образом
public void CreateHistoryMap(BaseEntity actual, BaseEntity old)
{
CreateHistoryMap(actualEntity, oldEntity)
.ForEach(mapEntry => CreateHistoryEntry(mapEntry),
mapEntry => IfChangesDetected(mapEntry));
}
CreateHistoryMap создает HistoryMapEntry, который содержит два свойства.
CreateHistoryEntry создание объекта, который сохраняется в базе данных, IfChangesDetected проверка объекта на наличие изменений.
Мне приходится обрабатывать собственные специальные типы приложений для генерации значений истории в базе данных (например, конкатенации значений списка и т. Д.).
Моя проблема в том, что я должен прочитать значения свойств дважды
- для обнаружения изменений
- а для бетона CreateHistoryEntry
Как я могу устранить эту проблему или как реализовать сценарий отслеживания изменений с хорошими функциями c # 3.5?
Большое спасибо.