我有一个从子类到父类的可选关系。当父对象被标记为删除时,如果该引用周围仍有子对象,我想在 SubmitChanges 上获得一个异常。
我尝试过的配置是这样的(没有从父级到子级的导航属性):
modelBuilder.Entity<Child>()
.HasOptional<Parent>(child => child.Parent)
.WithMany()
.HasForeignKey(child => child.ParentId)
.WillCascadeOnDelete(false);
像这个EF在删除父级时将子级的ParentId属性设置为null,这不是我想要的。
如果根据需要配置关系,则它可以工作:
modelBuilder.Entity<Child>()
.HasRequired<Parent>(child => child.Parent)
.WithMany()
.HasForeignKey(child => child.ParentId)
.WillCascadeOnDelete(false);
这会引发异常,这将是所需的行为。但这种关系必须是可选的。使用 Code First 的 EF 4.3.1 是否可以做到这一点?