EF 5 Code First,多个父级子级带级联删除?

时间:2013-05-09 16:50:11

标签: c# ef-code-first entity-framework-5

我有以下型号:

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中启用还是有更好的方法来实现这种情况?

由于

1 个答案:

答案 0 :(得分:0)

如果要在删除Contact Object时删除Parent 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.