2012-05-25 42 views
1

(當我說一個記錄「有」另一個記錄,我的意思是其他記錄有一個引用第一個)。派生類中的對象引用基類在數據庫中,而不是派生類

我有以下的數據庫關係:

BaseAnswer - > MultipleChoiceAnswer - > MultipleChoiceAnswerCulture

一個BaseAnswer記錄可以有一個MultipleChoiceAnswer記錄。對於每一個 「MultipleChoiceAnswer」 有幾個 「文化」 記載:

記錄

英文片名

法文標題

一個MultipleChoiceAnswer記錄有指一列BaseAnswer的主鍵,以及同樣在MultipleChoiceAnswerCulture中的記錄有一列應該重新轉到MultipleChoiceAnswer的主鍵。但是,我的問題是插入到MultipleChoiceAnswerCulture中的記錄是指BaseAnswer的主鍵代替(根父代,而不是直接父代)。這裏是我的代碼:

public class MultipleChoiceAnswerMap : SubclassMap<MultipleChoiceAnswer> 
{ 
    public MultipleChoiceAnswerMap() 
    {    
     Table("MultipleChoiceAnswer"); 
     KeyColumn("BaseAnswerID"); 
     Map(x => x.Score); 

     HasMany(x => x.Resources) 
      .CollectionType<ResourceMapSetUserType<MultipleChoiceAnswerCulture>>() 
      .KeyColumn("MultipleChoiceAnswerID") 
      .Cascade.AllDeleteOrphan() 
      .Access.CamelCaseField(Prefix.Underscore) 
    } 

}

我們已經在我們的項目之一另一個例子是類似這樣的,即使我工作過的那個,這仍保持插入BaseAnswer的主鍵作爲參考,而不是MultipleChoiceAnswerCulture表中的MultipleChoiceAnswer的主鍵。

任何幫助,將不勝感激。

回答

0

好吧,我們已經仔細研究過了,顯然,我正在處理的代碼很可能遭受了同樣的問題。我們可能會繼續,並且讓MultipleChoiceAnswerCulture中的外鍵成爲對根父級的引用。如果有人確實知道如何解決這個問題,如果你在這裏發佈它,我會很感激。

謝謝。