나는 그 HasMany
Question
그 HasMany
Option
입니다.
Option
에서 Survey
까지 참조를 만들고 싶습니다.
문제는 내가 모든 자식과 함께 new Survey
를 만들 때마다, 나는 Survey
(또는 다른 NHibernate에 각 Option
에 대한 new Survey
을 생성 할 모든 survey.Questions.Options
의 모든 survey.Questions
및 루프에 루프가 필요하고 각 Option
O를 설정하는 것이있다)
** 내가이 문제를 해결할 것이라고한다면 설문 조사에 IList<Option>
을 갖고 싶어 해달라고하지만 무겁고 ** 사용할 수 없게 될 것Fluent 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();
}
}
왜 옵션에 대한 설문 조사가 필요합니까? 역 참조하지 않는 이유 설문 조사에 대한 질문? 당신은 이미 컬렉션 매핑에 inverse를 정의 했으므로 이미 backreferences를 가지고 있다고 가정합니다. – Firo
@Firo -이 참조를 추가하여 다른 용도의 조인 쿼리를 최소화합니다. 외부보고 시스템처럼. 'Survey'에는'IList'이 들어 있기 때문에 Question이'Survey'에 매핑되어 있으므로 Question이'Survey'에 맵핑되지만, Option도 그 연결을 원합니다. 감사! –
SexyMF