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)
    }

}

私たちのプロジェクトの 1 つにこれに似た別の例があります。私はそれに取り組んでいますが、MultipleChoiceAnswerCulture テーブルで、MultipleChoiceAnswer の主キーの代わりに BaseAnswer の主キーを参照として挿入し続けています。

どんな助けでも大歓迎です。

4

1 に答える 1

0

よく調べてみたところ、どうやら私が作業していたコードが同じ問題を抱えていたようです。結局、MultipleChoiceAnswerCulture の外部キーをルートの親への参照にするだけでよいでしょう。誰かが実際にこれを解決する方法を知っている場合は、ここに投稿していただければ幸いです。

ありがとう。

于 2012-05-28T16:28:12.980 に答える