Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何在NHibernate中绘制此地图_Nhibernate_Fluent Nhibernate_Nhibernate Mapping - Fatal编程技术网

我如何在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
    }
}