我意识到EF6不支持此功能,但EF Core支持(How to update FK to null when deleting optional related entity),但这就是我需要此功能的原因:
示例:假设我有汽车->发动机。引擎将包含一个涉及汽车的赛车场。如果将引擎从汽车中取出,并将汽车损毁,我希望将引擎的汽车字段值自动设置为空。
在我的Web应用程序中,我想要一种有效的方法来删除我不依赖的汽车,因为这些汽车在与引擎的关系中被设置为可为空。我想使用EF6 ExecuteSqlCommand以便仅从数据库中删除汽车,但是我无法这样做,因为当EF6配置这些关系时,它没有配置sql服务器以将删除时的外键设置为null。我宁愿不使用EF6 Remove()函数删除它,因为那样的话我必须先加载所有相关实体,否则它将给我一个错误。我认为加载所有我不会使用的相关实体效率不高,因此我可以删除一个实体。
有没有人想出一种解决方案,在EF6中创建这些关系时,我可以作为迁移或数据库上下文配置的一部分,将FK设置为在删除时设置为null?