2
當我有一個父實體擁有其他實體列表(一對多關係)時,我修改此列表然後調用函數來保存父實體。隨着實體已經從這個列表中刪除,該框架是否會從數據庫中刪除它們?並且新實體已添加到列表中將被添加到數據庫中? 感謝您的幫助!實體框架 - 修改子對象列表
當我有一個父實體擁有其他實體列表(一對多關係)時,我修改此列表然後調用函數來保存父實體。隨着實體已經從這個列表中刪除,該框架是否會從數據庫中刪除它們?並且新實體已添加到列表中將被添加到數據庫中? 感謝您的幫助!實體框架 - 修改子對象列表
假設你有父母與子女之間的一對多關係,即父母有ChildList,孩子有父母。 看着案件。如果Parent位於實體上下文中,並將Child的實例添加到Parent的ChildList中,並保存上下文,則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();
如果從Parent的ChildList中刪除一個Child並保存上下文,那麼由於外鍵約束,您將得到一個異常。
Parent parent = provider.ParentSet.FirstOrDefault();
parent.ChildList.Remove(parent.ChildList.FirstOrDefault());
provider.SaveChanges();
如果刪除了從上下文屬於母公司的childList的童車之一,保存的背景下,這將是成功的,它會從數據庫中刪除。
provider.DeleteObject(parent.ChildList.FirstOrDefault());
provider.SaveChanges();
上述情況適用於實體模型的默認配置。實體框架還提供了許多選項,您還可以決定實體上下文的行爲。 你只需要自己嘗試這些和這種情況。我認爲會更好。