实体框架 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();

实体框架 5 无法更改关系,因为一个或多个外键属性不可为空

在导航属性上使用 .Clear() 不会将它们从数据库中删除,只会清除代码中的集合。您需要遍历订单行以逐个删除它们。

另一种可能性是启用级联删除功能,该功能允许在删除父实体时删除子实体。