2013-05-09 145 views
0

我有以下型号:EF 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;} 
} 

是否有可能有级联删除在这种情况下,就联系了3个外键将是可选的,这是可能的EF启用或是否有更好的办法实现这种情况?

感谢

+0

级联删除是永远存在的。问题是,你是否试图打开或关闭级联删除? – Komengem 2013-05-09 20:09:59

+0

我试图打开它,联系人类将只有其中一个相关的父母,所以在删除任何父母的情况下,我希望它级联删除。 – Mantorok 2013-05-10 13:45:30

回答

0

如果你想删除Contact ObjectParent 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. 
+0

这将使外键所需,它不是,会有多个父母,每个外键是可选的。 – Mantorok 2013-05-14 20:41:08