gpt4 book ai didi

entity-framework - Entity Framework - 修改子对象列表

转载 作者:行者123 更新时间:2023-12-04 06:47:10 24 4
gpt4 key购买 nike

当我有一个父实体持有其他实体的列表(一对多关系)时,我修改这个列表然后调用函数来保存父实体。随着实体已从该列表中删除,框架是否会将它们从数据库中删除?并且添加到列表中的新实体也会添加到数据库中吗?
感谢您的帮助!

最佳答案

假设您在 Parent 和 Child 之间有一对多的关系,即。例如,Parent 有 ChildList,Child 有 Parent。
看案例。如果 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();

如果您从上下文中删除属于 Parent 的 ChildList 的 Childs 之一并保存该上下文,它将成功,它将从数据库中删除。
provider.DeleteObject(parent.ChildList.FirstOrDefault());
provider.SaveChanges();

以上情况适用于实体模型的默认配置。 Entity Framework 还提供了许多选项,您还可以决定实体上下文的行为方式。
你只需要自己尝试这些和这样的情况。我想会更好。

关于entity-framework - Entity Framework - 修改子对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3582633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com