1

我有Survey那个HasMany Question。我想从to 创建一个引用。 问题是每次我想用它的所有孩子创建一个,我需要循环所有并循环所有并设置o每个(否则Nhibernate将为每个创建一个) **我不想拥有调查我是否这样做会解决问题,但会很重且无法使用**HasMany Option
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 回答