Я создаю приложение .net в качестве проекта в моем Univeristy, и у меня возникла проблема с самоконтролируемыми наборами сущностей. Я выбираю запись, пропускаю ее через службу wcf, делаю некоторые изменения и снова передаю ее на сервер. Там я хочу сравнить то, что было изменено, поэтому я снова выбираю одну и ту же запись из контекста (это запись со старыми значениями) и сравниваю. Затем, после сравнения я хочу вызвать ApplyChanges в контексте с сущностью, переданной через службу, и я получаю сообщение об ошибке:
AcceptChanges не может продолжаться, поскольку значения ключей объекта конфликтуют с другим объектом в ObjectStateManager. Убедитесь, что значения ключей уникальны, прежде чем вызывать AcceptChanges.
Полагаю, это связано с двойной загрузкой одного и того же объекта (до изменений и после изменений для сравнения). Есть ли лучший способ сравнить изменения (мне нужно сделать историю изменений в другой таблице БД)? И не возникнет ли эта ошибка также, если два клиента получат одну и ту же запись, а первый изменит ее и захочет сохранить в db? Я использую .net 4.0.