我有一对一的关系设置如下
modelBuilder.Entity<Subject>()
.HasOptional(d => d.Contact)
.WithMany()
.HasForeignKey(key => key.ContactID);
联系人是主题的可选字段,但是如果我尝试删除仍然被主题引用的联系人,它会给我一个外键约束错误。如果我添加.WillCascadeOnDelete。然后删除联系人也会删除主题。
无论如何都要做我试图用一对一的FK关系做什么?
答案 0 :(得分:1)
您的代码正常运行。 您无法删除孩子正在引用的父级。
作为最佳做法,请尝试在表格中添加Status
列,并仅显示Status
设置为true
的列,并且当您要删除某些内容时,只需设置{通过更改删除操作中的一行,将{1}}设置为false:
Status
要:
db.yourentity.Remove(yourentityinstance);