我如何在NHibernate中绘制此地图
我有两门课,调查课和民意测验课。我也有问答课和问题选择课。我如何映射这些数据,以便生成特定的表格格式。以下是相关课程我如何在NHibernate中绘制此地图,nhibernate,fluent-nhibernate,nhibernate-mapping,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,我有两门课,调查课和民意测验课。我也有问答课和问题选择课。我如何映射这些数据,以便生成特定的表格格式。以下是相关课程 public class Survey { public IList<Question> Questions { get; private set; } } public class Poll { public Question Question { get; set; } } public class Question { pub
public class Survey
{
public IList<Question> Questions { get; private set; }
}
public class Poll
{
public Question Question { get; set; }
}
public class Question
{
public string Text { get; set; }
public IList<QuestionChocie> Choices { get; private set; }
}
public class QuestionChoice
{
public string Text { get; set; }
}
最好是,我真的想知道Fluent NHibernate,或者仅仅映射xml也可以。您还没有定义表之间的关系,所以我将假设一对多 一般映射为:
public class SurveyMap : ClassMap<Survey>
{
public SurveyMap()
{
HasMany<SurveyQuestion>(x => x.Questions).Inverse();
// Rest of mapping
}
}
public class SurveyQuestionMap : ClassMap<Question>
{
public QuestionMap()
{
References<Survey>(x => x.Survey);
HasMany<SurveyChoice>(x => x.Choices).Inverse();
// Rest of mapping
}
}
public class SurveyChoiceMap : ClassMap<SurveyChoice>
{
public SurveyChoiceMap()
{
References<SurveyQuestion>(x => x.Question);
// Rest of mapping
}
}
公共类调查映射:类映射
{
公共调查地图
{
有很多(x=>x个问题);
//其余的映射
}
}
公共类调查问题地图:类地图
{
公共问题地图()
{
参考文献(x=>x.Survey);
有很多(x=>x.Choices);
//其余的映射
}
}
公共类调查选择地图:类地图
{
公共调查选择地图()
{
参考文献(x=>x.Question);
//其余的映射
}
}
Stuart,我想你可以把类型名放在两个字符之间。除非我遗漏了什么,否则它们应该被推断出来。你是对的,你可以把类型去掉。这只是我的偏好,让它留在里面,这样就可以清楚地知道我在映射什么。我喜欢把它读作“有很多X到Y”或“参考X到Z”
public class SurveyMap : ClassMap<Survey>
{
public SurveyMap()
{
HasMany<SurveyQuestion>(x => x.Questions).Inverse();
// Rest of mapping
}
}
public class SurveyQuestionMap : ClassMap<Question>
{
public QuestionMap()
{
References<Survey>(x => x.Survey);
HasMany<SurveyChoice>(x => x.Choices).Inverse();
// Rest of mapping
}
}
public class SurveyChoiceMap : ClassMap<SurveyChoice>
{
public SurveyChoiceMap()
{
References<SurveyQuestion>(x => x.Question);
// Rest of mapping
}
}