Я не использовал Entity Framework много, поэтому, пожалуйста, со мной.Сохранение изменений в дочерних коллекциях с помощью платформы Entity Framework
Я внес изменения в качестве EntityCollection который является объектом другого EntityCollection, и когда я пытаюсь сохранить эти изменения, я получаю следующее сообщение об ошибке:
The EntityCollection has already been initialized. The InitializeRelatedCollection method should only be called to initialize a new EntityCollection during deserialization of an object graph.
Любые идеи, что я мог бы быть не хватает?
Следующий код, который я использовал.
public void UpdateCompanyManagement(Company newCompany)
{
Company oldCompany = entities.Companies.Where(c => c.COM_ID == newCompany.COM_ID).SingleOrDefault();
oldCompany.Managements = newCompany.Managements;
try
{
entities.SaveChanges();
}
catch (OptimisticConcurrencyException)
{
entities.Refresh(RefreshMode.ClientWins, newCompany.Managements);
entities.SaveChanges();
}
}
Я могу сохранить родительскую коллекцию успешно, используя следующий код:
public void UpdateCompanyDetails(Company newCompany)
{
Company oldCompany = entities.Companies.Where(c => c.COM_ID == newCompany.COM_ID).SingleOrDefault();
entities.ObjectStateManager.ChangeObjectState(oldCompany.city, System.Data.EntityState.Modified);
oldCompany = newCompany;
try
{
entities.SaveChanges();
}
catch (OptimisticConcurrencyException)
{
entities.Refresh(RefreshMode.ClientWins, oldCompany);
entities.SaveChanges();
}
}
Любая помощь, почему первый код не будет работать высоко ценится. Спасибо заранее.
Спасибо @dmitry. –
Отвечает ли ваш вопрос на ваш вопрос? –
Фактически @dmitry ресурсы были очень информативными, но в этом случае они не совпадают. Я опубликовал решение, которое сработало для меня. –