1
我有Survey
那HasMany
Question
那HasMany
Option
。
我想创建从Option
到Survey
的参考。
的问题是,每次我想创建一个所有孩子的new Survey
,我需要在所有survey.Questions
环上的所有survey.Questions.Options
循环,并设置o每个Option
的Survey
(或者NHibernate的会为每个Option
创建new Survey
)
**我不想有IList<Option>
的调查,如果我这样做,它会解决这个问题,但它是沉重的,无法使用**流利Nhibernate - 只从儿童方参考
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();
}
}
为什么你需要参考调查选项?为什么不反引用问题哪个反向引用调查?你已经在集合映射上定义了反函数,所以我假设你已经有了反向引用 – Firo 2013-03-28 06:34:07
@Firo - 我添加了这个引用来最小化其他用法的连接查询。像外部报告系统。由于'Survey'包含'IList',这意味着该问题被映射到'Survey',所以问题被映射到'Survey',但我希望Option也具有该连接。谢谢! –
SexyMF
2013-03-28 18:00:14