Возникла исключительная ситуация при сохранении изменений в объекте самообследования:
AcceptChanges cannot continue because the object's key values conflict with another object in the ObjectStateManager. Make sure that the key values are unique before calling AcceptChanges.
Я полагаю, что проблема решена в других вопросах, таких как: Самопроверка объектов - AcceptChanges не может продолжаться, потому что значения ключа объекта конфликтуют с другим объектом в ObjectStateManager
Мой вопрос заключается в том, как лучше всего решить эту проблему как в процессе разработки, так и в производстве. Есть ли какая-либо дополнительная информация, которая может быть поймана / получена доступ, которая детализирует, какие сущности или типы сущностей вызывают исключение.
Если нет, то придется ли мне что-то писать для обхода графа объектов в поисках дублирующих ключей, ссылающихся на разные объекты? Если да, то есть ли у кого-нибудь такой опыт?
Дополнительная информация:
Мой сценарий включает следующее - клиент извлекает сущность через службу WCF, которая содержит коллекции других сущностей с различными FK для других сущностей. Все эти отношения FK включены в запрос linq, поэтому у нас есть полный граф объектов.
Представления в клиенте используют предварительно выбранные объекты для статических данных, таких как таблицы поиска для производительности. Если мы скажем объект Customer с FK для пользователя, он будет загружен при получении из службы. Если мы теперь добавим еще один объект в граф объектов, например, Закажите и установите свойство User для этого объекта, который имеет тот же Id, что и в объекте Customer, но объект был извлечен в другой точке и, следовательно, с использованием другого ObjectContext (т. Е. Объекты имеют тот же Id, но не являются тем же экземпляром объект) Я получаю эту ошибку.
Ссылка на другой вопрос демонстрирует способы избежать этого, но я ищу, чтобы найти больше информации о том, какие объекты вызывают проблему, чтобы я мог отследить ошибку.