2010-08-31 53 views
1

我有三個映射如下:NHibernate的級聯和逆

public MainChapterMap() 
{ 
    // other properties 

    HasMany(x => x.ClientSpecific).KeyColumn("MainChapterId"); 
} 

public MainChapterClientMap() 
{ 
    // other properties 

    References(x => x.MainChapter).Column("MainChapterId"); 
    HasMany(x => x.Details).KeyColumn("MainChapterClientId"); 
} 

public MainChapterClientDetailMap() 
{ 
    // other properties 

    References(x => x.MainChapterClient).Column("MainChapterClientId"); 
} 

MainChapter有許多客戶特定的章節。客戶特定的章節(MainChapterClient)有許多翻譯(MainChapterClientDetail

的DELE規則應該如下:

  1. 當刪除MainChapter
    • 刪除MainChapterClient
    • 刪除MainChapterClientDetail
  2. 當刪除婷MainChapterClient
    • 不要刪除MainChapter
    • 刪除MainChapterClientDetail行(S)
  3. 當刪除MainChapterClientDetail
    • 不要刪除MainChapter
    • 做不刪除MainChapterClientDetail行(s)

但是我不管我最終得到這個錯誤:

deleted object would be re-saved by cascade (remove deleted object from associations)[Entities.MainChapterClient#39]

我不知道如何設置我的瀑布了。任何幫助都比歡迎!

回答

1

你需要從兩側取出參考:

MainChapterClient.Details.Remove(instance); 
instance.MainChapterClient = null; 
+0

感謝它幫我。 – 2012-10-12 10:49:05