EF 5代码优先,多级父级子级删除

本文关键字:删除 多级 代码 EF | 更新日期: 2023-09-27 18:12:58

我有以下模型:

public class Parent1
{
   public int Id {get;set;}
   public List<Contact> Contacts {get;set;}
}
public class Parent2
{
   public int Id {get;set;}
   public List<Contact> Contacts {get;set;}
}
public class Parent3
{
   public int Id {get;set;}
   public List<Contact> Contacts {get;set;}
}
public class Contact
{
   public int Id {get;set;}
   public Parent1 Parent1 {get;set;}
   public Parent2 Parent2 {get;set;}
   public Parent3 Parent3 {get;set;}
}

在这种情况下是否有可能进行级联删除,Contact上的3个外键将是可选的,这是否可能在EF中启用,或者是否有更好的方法来实现这种情况?

谢谢

EF 5代码优先,多级父级子级删除

如果要在删除Parent Object的同时删除Contact Object,则必须在关联的Parent侧进行配置。这样的。

modelBuilder.Entity<ParentEntity>()
    .HasMany(p => p.Contact)
    .WithRequired()
    .HasForeignKey(c => c.ParentEntityId)
    .WillCascadeOnDelete(true);// To turn it off change to false as parameter.