实体框架 5 无法更改关系,因为一个或多个外键属性不可为空
本文关键字:一个 属性 框架 因为 关系 实体 | 更新日期: 2023-09-27 18:36:49
我在尝试删除实体时收到上述错误。
这个实体有一个列表表的外键,但我可以从 Heidi MySql 客户端删除数据库条目而不会出现问题。
我正在尝试清除子实体,但是当我在上下文上调用 SaveChanges 时,它会抛出上述错误。
nquote_orderheaders header = portalDb.nquote_orderheaders.Single(f => f.QuoteOrderNumber == id);
header.nquote_orderlines.Clear();
portalDb.SaveChanges();
portalDb.nquote_orderheaders.Remove(header);
portalDb.SaveChanges();
在导航属性上使用 .Clear()
不会将它们从数据库中删除,只会清除代码中的集合。您需要遍历订单行以逐个删除它们。
另一种可能性是启用级联删除功能,该功能允许在删除父实体时删除子实体。