派生类中的对象引用数据库中的基类,而不是派生类

时间:2012-05-25 15:48:36

标签: c# nhibernate inheritance mapping

(当我说记录“有”另一条记录时,我的意思是另一条记录引用了第一条记录。)

我有以下数据库关系:

表格

  

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)
    }

}

我们的一个项目中有另一个与此类似的示例,即使我正在使用它,仍然会在MultipleChoiceAnswerCulture中插入BaseAnswer的主键作为引用而不是MultipleChoiceAnswer的主键表

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

好吧,我们已经调查过了,显然我正在处理的代码很可能遇到了同样的问题。我们可能只是继续,让MultipleChoiceAnswerCulture中的外键毕竟是对根父级的引用。如果有人确实知道如何解决这个问题,如果你在这里发布它,我会很感激。

感谢。