【发布时间】:2012-06-01 05:16:00
【问题描述】:
(当我说一条记录“有”另一条记录时,我的意思是另一条记录引用了第一条记录)。
我有以下数据库关系:
表格
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 的主键表。
任何帮助将不胜感激。
【问题讨论】:
标签: c# nhibernate inheritance mapping