1

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

我有以下数据库关系:

BaseAnswer -> MultipleChoiceAnswer -> MultipleChoiceAnswerCulture

BaseAnswer 记录可以有一个 MultipleChoiceAnswer 记录。对于每个“MultipleChoiceAnswer”,都有几个“Culture”记录:

记录

英文标题

法语标题

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 的主键。

任何帮助,将不胜感激。

4

1 回答 1

0

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

谢谢。

于 2012-05-28T16:28:12.980 回答