实体框架On Delete Cascade

时间:2013-07-15 15:24:47

标签: sql-server entity

我有一对一的关系设置如下

           modelBuilder.Entity<Subject>()
                    .HasOptional(d => d.Contact)
                    .WithMany()
                    .HasForeignKey(key => key.ContactID);

联系人是主题的可选字段,但是如果我尝试删除仍然被主题引用的联系人,它会给我一个外键约束错误。如果我添加.WillCascadeOnDelete。然后删除联系人也会删除主题。

无论如何都要做我试图用一对一的FK关系做什么?

1 个答案:

答案 0 :(得分:1)

您的代码正常运行。 您无法删除孩子正在引用的父级。

作为最佳做法,请尝试在表格中添加Status列,并仅显示Status设置为true的列,并且当您要删除某些内容时,只需设置{通过更改删除操作中的一行,将{1}}设置为false:

Status

要:

db.yourentity.Remove(yourentityinstance);