0

我有以下的数据库,我想在功能NHibernate创建映射,这样我可以穿越像多列功能NHibernate映射

survey.question.feedback对象集合去问题的所有响应..如何我可以这样做吗?

Database design

我有以下映射到目前为止

public class SurveyMapping : ClassMap<Survey> 
{ 
    public SurveyMapping() 
    { 
     Id(x => x.Id, "SurveyId"); 
     Map(x => x.Name); 
     Map(x => x.Type); 
     Map(x => x.CreationDate); 
     Map(x => x.ModificationDate); 
     HasManyToMany<SurveyQuestions>(x => x.Questions).Table("Survey-Questions") 
      .ParentKeyColumn("SurveyId").ChildKeyColumn("QuestionId").Cascade.All(); 
     HasManyToMany<User>(x => x.Users).Table("User-Surveys").ParentKeyColumn("SurveyId").ChildKeyColumn("UserId").Cascade.None(); 
    } 
} 

public class SurveyQuestionsMapping : ClassMap<SurveyQuestions> 
{ 
    public SurveyQuestionsMapping() 
    { 
     Table("Questions"); 
     Id(x => x.Id, "QuestionId"); 
     Map(x => x.QuestionText); 
     Map(x => x.CommentText); 
     Map(x => x.Type); 
     Map(x => x.Scale); 
     Map(x => x.Rating); 
     Map(x => x.Threshold); 
     Map(x => x.CreationDate); 
     Map(x => x.ModificationDate); 
     HasMany<UserSurveyFeedback>(x => x.Feedback) 
      .KeyColumn("QuestionId"); 
     **// This is the confusing part How I can load feedback associated with specific user here** 
    } 
} 

回答

0

你应该有不少一对多从用户关系的调查,从用户到反馈,从问题的调查和问题反馈。 至于查询用户的所有反馈,它很简单:

var feedbackFromUser = session.Query<Feedback>().Where(f => f.User.UserID == userID).ToList(); 
+0

谢谢里卡多您的答复。我不知道如何创建从用户到反馈和问题到反馈的多对多映射,因为我需要考虑来自反馈表 – Paresh

+0

的(surveyID,QuestionID,UserID)列的组合。我还需要用户对特定调查的反馈和问题..类似User.Survey [0] .Question [0] .Feedback – Paresh

+0

没有FNH它非常简单。给我一天,我会尝试拿出一个工作的例子。 –