Entity framework core 如何清除EF Core中的可选外键

Entity framework core 如何清除EF Core中的可选外键,entity-framework-core,nullable,one-to-one,savechanges,Entity Framework Core,Nullable,One To One,Savechanges,我在两个实体之间有一个可选的1:1关系。当我这样设置它们时,很好: entity.Role=roleObject 然后我可以运行_context.SaveChanges(),它将在数据库中更新。我可以很好地将其更新为新值,但我正在努力删除它。如果我设置: entity.Role=null 它只是将其设置回以前调用SaveChanges()时的状态。我已经检查了数据库,外键约束被正确设置为null。有人知道我缺少什么基本东西吗?你必须尝试entity.RoleId=null而不是entity.Ro

我在两个实体之间有一个可选的1:1关系。当我这样设置它们时,很好:

entity.Role=roleObject

然后我可以运行_context.SaveChanges(),它将在数据库中更新。我可以很好地将其更新为新值,但我正在努力删除它。如果我设置:

entity.Role=null


它只是将其设置回以前调用SaveChanges()时的状态。我已经检查了数据库,外键约束被正确设置为null。有人知道我缺少什么基本东西吗?

你必须尝试entity.RoleId=null而不是entity.Role=null

实体是否附加到上下文?它是否具有显式FK属性?它附加到上下文。据我所见,没有明确设置任何内容(它是由其他人开发的),但FK关系在数据库中已正确生成,但至少
实体
是关系的依赖项(数据库中有FK的人),对吗?您使用的EF核心版本是什么?你能发布一个我们可以复制/粘贴并运行的小型复制机吗?我确实想尝试一下,但是。。。它没有在实体类中显式声明id属性。EF已经在数据库中生成了一个。只需将它添加到实体类中即可。但最快的方法是使用EF Power工具,它可以从DB生成所有EF类。