Это похоже на то, что мы делаем с одним из проектов, над которым я работаю для клиента.
Что мы делаем, так это дублируем объекты значений, как только они возвращаются в пользовательский интерфейс.Затем при вызове службы обновлений я отправляю как оригинальный объект, так и новый объект.В сервисе я выполняю сравнение по полям на сервере, чтобы определить, какие значения следует отправлять в базу данных.
Если вам нужно обновлять каждое поле / свойство в зависимости от того, изменилось оно или нет;тогда я не вижу способа избежать проверки с каждым полем / свойством.Даже если вы реализуете свою логическую идею и меняете флаг в пользовательском интерфейсе всякий раз, когда что-то меняется;вам все еще придется проверять эти логические значения при создании запроса, чтобы определить, что следует обновлять или нет.
В моей ситуации запрашиваются три разные базы данных для создания объекта значения, который отправляется обратно впользовательский интерфейс.Обновления полей сохраняются в одной из этих баз данных и имеют первый порядок предпочтений при выполнении выбора.Итак, у вас есть явное сравнение полей по полям, происходящее внутри хранимой процедуры.
Если вам не нужно сравнение полей по полям, а сравнение «запись по записи»;тогда булевский подход, позволяющий вам узнать, что объект записи / значения изменился, сэкономит вам немного времени и затрат на кодирование.