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

本文关键字:派生 数据库 对象引用 基类 | 更新日期: 2023-09-27 18:35:18

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

我有以下数据库关系:

基本答案 -> 多项选择答案 -> 多项选择答案文化

基本答案记录

可以具有多项选择答案记录。对于每个"多项选择答案",都有几条"区域性"记录:

记录

英文标题

法语标题

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 的主键作为引用,而不是 MultipleChoiceAnswer 的主键,在 MultipleChoiceAnswerCulture 表中。

任何帮助将不胜感激。

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

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

谢谢。