У меня есть веб-приложение ASP.NET 4, которое использует Entity Framework для хранения, среди прочего, иерархической структуры элементов, которая используется для таких функций, как навигация.
Одна из функций приложения позволяет экспортировать определенную ветвь дерева иерархии в XML, сгенерированный с использованием DataContractSerializer. После экспорта предполагается, что XML можно затем загрузить в другой экземпляр того же приложения, десериализовать обратно в объекты EF, а затем добавить в модель данных на втором сервере.
Когда я пытаюсь импортировать данные таким образом, я обнаруживаю следующую ошибку:
Невозможно добавить или присоединить объект, поскольку его EntityReference имеет значение свойства EntityKey, которое не соответствует EntityKey для этого объекта.
При более внимательном рассмотрении XML, сгенерированного сериализатором, я вижу, что ключ сущности находится среди элементов, которые были сериализованы. Так как я импортирую сущности, которые происходят из другой базы данных, некоторые из идентификаторов конфликтуют.
В идеале я бы хотел иметь возможность (если я что-то здесь упускаю) - присоединить импортированные объекты к контексту объекта и сбросить идентификаторы импортируемых объектов.
Есть ли умный способ сделать это? Должен ли я просто установить идентификатор для каждого из импортированных объектов в 0, присоединить их к контексту объекта и затем сохранить изменения?
Заранее спасибо!