Привет. Я пытаюсь создать клон объекта EF, а затем снова вставить его в контекст для сохранения в БД в виде новой строки. Позже, когда я решил это, я хотел бы расширить это, чтобы клонировать полный граф сущностей и сохранить его.
Я пробовал два примера кода:
http://msmvps.com/blogs/matthieu/archive/2008/05/31/entity-cloner.aspx
http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/a967b44b-c85c-4afd-a499-f6ff604e2139
, который, похоже, работает. Я думаю, что проблема заключается в моем понимании того, что происходит. Насколько я понимаю, процесс клонирования создает отдельный клон целевого объекта, который я должен иметь возможность прикрепить или добавить объект обратно в контекст, и контекст сохранит его в БД, где ему будет автоматически назначен уникальный идентификатор PK .
Главное, что меня смущает, это то, что когда я клонирую свой объект-сущность, а затем смотрю на свойства клона в режиме отладки, кажется, что его навигационные коллекции все еще явно указывают на действительные сущности, на которые указывает скопированный объект. Однако EntityState отсоединен. Это нормально? Я предположил, что свойства навигации объекта клона указывают на те же объекты, что и на графике клонированного объекта. Но объекты-клоны «отделены», а объекты-клоны «неизменны».
Я ооочень запутался ... есть идеи?