2013-05-09 126 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