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

C# 派生类中的对象引用数据库中的基类,而不是派生类,c#,nhibernate,inheritance,mapping,C#,Nhibernate,Inheritance,Mapping,(当我说一条记录“有”另一条记录时,我的意思是另一条记录引用了第一条记录) 我有以下数据库关系: 表格 BaseAnswer->MultipleChiiceAnswer->MultipleChiiceAnswerCulture BaseAnswer记录可以有多个EchoiceAnswer记录。对于每个“MultipleChiceAnswer”,都有几个“区域性”记录: 记录 英文标题 法文标题 MultipleChiceAnswer记录有一列引用BaseAnswer的主键,同样,Multiple

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

我有以下数据库关系:

表格

BaseAnswer->MultipleChiiceAnswer->MultipleChiiceAnswerCulture

BaseAnswer记录可以有多个EchoiceAnswer记录。对于每个“MultipleChiceAnswer”,都有几个“区域性”记录:

记录

英文标题

法文标题

MultipleChiceAnswer记录有一列引用BaseAnswer的主键,同样,MultipleChiceAnswerCulture中的记录也有一列引用MultipleChiceAnswer的主键。但是,我的问题是,插入到MultipleEchoiceAnswerCulture中的记录引用的是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)
    }
公共类多回音应答器映射:子类映射
{
公共多回音应答器映射()
{            
表(“MultipleChiceAnswer”);
KeyColumn(“BaseAnswerID”);
Map(x=>x.Score);
HasMany(x=>x.Resources)
.CollectionType()
.KeyColumn(“多回音应答器ID”)
.Cascade.alldelete孤儿()
.Access.CamelCaseField(前缀.下划线)
}
}

在我们的一个项目中有另一个类似的例子,尽管我正在处理这个问题,但它仍然在multiplechiceanswerculture表中插入BaseAnswer的主键作为引用,而不是multiplechiceanswer的主键


任何帮助都将不胜感激。

好吧,我们已经调查过了,显然我正在编写的代码很可能遇到了同样的问题。我们可能会继续,让multipleChiiceAnswerCulture中的外键毕竟是对根父级的引用。如果有人真的知道如何解决这个问题,如果你把它贴在这里,我将不胜感激

谢谢