gpt4 book ai didi

c# - Entity Framework 4 : Problem with ForeignKey when removing a child entity from parents collection

转载 作者:太空宇宙 更新时间:2023-11-03 14:28:26 27 4
gpt4 key购买 nike

EF 新手,我有一个问题。

好的,所以,我有一个实体和一个相关的表(一对多关系)。该实体包含来自相关表的子对象的集合。我想从相关集合中删除一个对象,但不从子表中删除。

但是,当我调用 <entity>.myRelatedChildTable.Remove( childEntity )然后调用_context.SaveChanges( ) ,我得到一个关于 ForeignKey Constraints 的异常。现在,如果我调用 _context.DeleteObject()然后 _context.SaveChanges()我们没有问题。但是,现在我们也没有子实体了——它已从数据库中删除。

这是异常的文本:操作失败:无法更改关系,因为一个或多个外键属性不可为空。当改变是建立关系,相关的外键属性设置为空值(value)。如果外键不支持空值,一个新的关系必须定义,外键属性必须分配另一个非空值,否则必须删除不相关的对象。

有人对我如何解决这个问题有想法/建议吗?

最佳答案

听起来您基本上是在尝试将 EF 与数据库分离。不幸的是,保存更改会将更改推回数据库,这显然是您不想要的。您可以不调用 SaveChanges 并继续使用该集合。 EF 将对您的删除负责,并且不会返回该信息。最后,您可以放弃更改并继续。

如果您确实想删除项目而不删除子项目,则在当前架构中无法做到。您必须在数据库中允许空值。

关于c# - Entity Framework 4 : Problem with ForeignKey when removing a child entity from parents collection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3260813/

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