2012-05-25 46 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中的外键成为对根父级的引用。如果有人确实知道如何解决这个问题,如果你在这里发布它,我会很感激。

谢谢。