Мне нужно добавить несколько дочерних объектов в существующий родительский объект. Я создаю экземпляр моего родительского объекта и задаю его Key / Id в моем слое обработки пользовательского интерфейса (к которому будут добавлены мои дочерние объекты).
Parent parenttoModify = new Parent();
parenttoModify.Parent_Id = 5; //this comes from some Index of a dropdown or a key column of a grid, i Have put a dummy value here for example
parenttoModify.Children.Add(child);
parenttoModify.Children.Add(child2);
DataAccess.ModifyParent(parenttoModify);
В моем слое доступа к данным у меня есть такой метод:
public static bool ModifyParent(Parent parent)
{
int recordsAffected=0;
using (TestEntities testContext = new TestEntities())
{
testContext.Parents.Attach(parent);
var parentEntry = testContext.ObjectStateManager.GetObjectStateEntry(parent);
parentEntry.ChangeState(System.Data.EntityState.Modified);
recordsAffected = testContext.SaveChanges();
}
return recordsAffected > 0 ? true : false;
}
Я получаю сообщение об ошибке при вызове testContext.Parent.Attach (parent). Там написано:
Объект с таким же ключом уже существует.
Я не уверен, почему это происходит, поскольку я не добавляю родительский объект, я просто присоединяю его и добавляю в него дочерние объекты.
Есть идеи, где я иду не так?