首先将在EF 6代码中删除时将fk设置为null的某种方式

时间:2019-07-11 07:37:55

标签: c# asp.net-mvc entity-framework-6

我意识到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?

0 个答案:

没有答案