首先在Entity Framework数据库中防止删除时设置为null

时间:2017-11-06 11:14:28

标签: c# entity-framework

我有一个使用Entity Framework 6.2.0的 数据库优先 模型,该模型具有以下关联:

如您所见,两端的OnDelete属性设置为None。 SQL Server中的对应关系如下所示:

虽然没有显式设置在删除时设置null,但是当我尝试从Plannings(主表)中删除对象时,EF会将表Waybill中的所有外键记录设置为null。

在同一个数据库和模型中,我有以下外键和相应的关联:

所有情况都与之前相同。但在这种情况下,当我尝试从Products中删除一个对象时,它会因为与外键约束冲突而失败(正如我所料)。

为什么这两个相似的案例有不同的行为?如何在 数据库优先 模型中完全禁用删除时设置null?我知道在 代码优先 模型中,我们可以使用以下内容删除约定:

modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();

但我在 数据库优先 中找不到任何方法。

0 个答案:

没有答案