Я создаю новую родительскую сущность с новой дочерней сущностью на стороне клиента. Это отношения один ко многим.
//Client has created a new Parent with a new Child attached
//e.g. Parent.Child = new Child();
//This is submitted to the server, and ends up here:
public void InsertParent(Parent parent)
{
ObjectContext.Parents.AddObject(parent); //No Parent.ID yet
ObjectContext.SaveChanges(); //Now I have a Parent.ID
//Do some stuff with the Parent.ID here. (Nothing is changed with the Parent or Child, just using Parent.ID)
}
Моя проблема заключается в том, что после всего этого я получаю в базе данных две дочерние сущности. Я предполагаю, что EF уже имеет вставку для дочерней очереди, и когда я вызываю SaveChanges, он создает другую вставку для той же дочерней сущности.
Причина, по которой у меня есть SaveChanges, заключается в том, что я хочу кое-что сделать с Parent.ID после создания родителя, но мне нужно сохранить Parent до того, как он получит ID (первичный ключ создается БД). Когда я беру весь свой дополнительный код (из SaveChanges и далее), все работает как положено.