(当我说记录“有”另一条记录时,我的意思是另一条记录引用了第一条记录。)
我有以下数据库关系:
表格
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的主键表
任何帮助都将不胜感激。
答案 0 :(得分:0)
好吧,我们已经调查过了,显然我正在处理的代码很可能遇到了同样的问题。我们可能只是继续,让MultipleChoiceAnswerCulture中的外键毕竟是对根父级的引用。如果有人确实知道如何解决这个问题,如果你在这里发布它,我会很感激。
感谢。