1

私はそれを持っSurveyHasMany QuestionHasMany Optionます。からへ
の参照を作成したい。問題は、すべての子を持つ を作成するたびに、すべてをループしてすべてをループし、それぞれを設定する必要があることです (そうしないと、Nhibernate がfor each を作成します) ** 私はしたくないです調査すれば問題は解決しますが、重くて使えません**OptionSurvey
new Surveysurvey.Questionssurvey.Questions.OptionsOptionSurveynew SurveyOption
IList<Option>

public class SurveyMap : ClassMap<Survey>
    {
        public SurveyMap()
        {
           Id(x => x.Id).GeneratedBy.Identity();
            HasMany(x => x.Questions).KeyColumn("SurveyId").Inverse().AsBag().Not.LazyLoad().Cascade.SaveUpdate();
        }
    }

    public class QuestionMap : ClassMap<Question>
    {
        public QuestionMap()
        {
           Id(x => x.Id).GeneratedBy.Identity();
            HasMany(x => x.Options).KeyColumn("QuestionId").Inverse().AsBag().Cascade.SaveUpdate();
        }
    }

    public class OptionMap : ClassMap<Option>
    {
        public OptionMap()
        {
            Id(x => x.Id).GeneratedBy.Identity();
            References(x => x.Survey).Column("SurveyId").Cascade.All();
        }
    }
4

1 に答える 1

1

レポートに関する懸念は、アプリケーションのビジネス ロジックに関する懸念から切り離したほうがよい場合があります。アプリケーションのビジネス ロジック用に既に持っているマッピングを使用し、レポート要件のデータに別のインターフェイスを提供します。これには、HQL、SQL、または新しいオブジェクトとマップのいずれかを使用できます。

于 2013-03-28T20:15:24.270 に答える