Когда у меня есть родительский объект, удерживайте список другого объекта (отношение один ко многим), я изменяю этот список, а затем вызываю функцию для сохранения родительского объекта. С удалением сущностей из этого списка заключается в том, что структура удалит их из базы данных? А также добавленный в список новый объект будет добавлен в базу данных? благодарим за помощь!Entity framework - изменение списка дочерних объектов
ответ
Предполагая, что у вас есть отношения друг к другу между родителем и ребенком, т.е. д. Родитель имеет ChildList и Child имеет родителя. Глядя на случаи. Если Parent находится в контексте сущности, и вы добавляете экземпляр Child to ChildList of Parent и сохраняете контекст, тогда Child будет добавлен в базу данных.
Parent parent = new Parent() { Name = "parent1" };
provider.AddToParentSet(parent)
parent.ChildList.Add(new Child() { Name = "child1" });
parent.ChildList.Add(new Child() { Name = "child2" });
parent.ChildList.Add(new Child() { Name = "child3" });
provider.SaveChanges();
Если удалить один из ребенка от ChildList родителя, и сохранять контекст, то вы получите исключение из-за внешнего ключа.
Parent parent = provider.ParentSet.FirstOrDefault();
parent.ChildList.Remove(parent.ChildList.FirstOrDefault());
provider.SaveChanges();
Если удалить один из Чайлдс, которые принадлежат ChildList родителя из контекста и сохранять контекст, он будет успешным, то он будет удален из базы данных.
provider.DeleteObject(parent.ChildList.FirstOrDefault());
provider.SaveChanges();
Вышеуказанные ситуации действительны для конфигурации модели сущности по умолчанию. Entity Framework также предоставляет множество опций, вы также можете решить, как ведет себя ваш контекст. Вам просто нужно попробовать эти и подобные ситуации самостоятельно. Это будет лучше, я думаю.