Те же значения первичного ключа не допускаются, если вы прикрепляете объекты к контексту.Это возможно только в том случае, если вы добавляете их в контекст.
Если вы хотите вставить дочерние элементы для уже существующего родителя, вы можете попробовать следующее (пример для EF> = 4.1):
// put parent and all children into Added state
context.Parents.Add(parent);
// reset state for parent to Unchanged, but not for the children
context.Entry(parent).State = EntityState.Unchanged;
context.SaveChanges();
Я предполагаю, что родительский элемент и все дочерние элементы были отсоединены от контекста перед этим фрагментом кода.
Редактировать
С ObjectContext
:
// put parent and all children into Added state
objectContext.Parents.AddObject(parent);
// reset state for parent to Unchanged, but not for the children
objectContext.ObjectStateManager.ChangeObjectState(parent,EntityState.Unchanged);
objectContext.SaveChanges();