(レコードが別のレコードを「持っている」と言うとき、それは、他のレコードが最初のレコードへの参照を持っていることを意味します)。
次のデータベース関係があります。
テーブル
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)
}
}
私たちのプロジェクトの 1 つにこれに似た別の例があります。私はそれに取り組んでいますが、MultipleChoiceAnswerCulture テーブルで、MultipleChoiceAnswer の主キーの代わりに BaseAnswer の主キーを参照として挿入し続けています。
どんな助けでも大歓迎です。