2009-03-30 7 views
0

I Possède deux classes, classes Survey et Poll. J'ai aussi des cours de questions et de questions. Comment puis-je les cartographier afin que je sors avec des formats de table particuliers. Voici les classes impliquées.Comment mapper ceci dans NHibernate

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; } 
} 

Les tables résultantes que je tire pour sont les suivants

Surveys- a table of survey information. 
Polls - a table of polls information. 
SurveyQuestions -a table of survey questions. 
PollQuestions - a table of poll questions. 
SurveyChoices - a table of the question choices for the surveys. 
PollChoices - a table of the question choices for the survey. 

De préférence, je veux vraiment savoir pour Fluent NHibernate, ou tout simplement la cartographie xml est bien aussi.

Répondre

0

Vous n'avez pas défini de relations entre les tables, donc je vais supposer un-à-plusieurs.

La cartographie générale serait:

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 
    } 
} 
+0

Stuart, je pense que vous pouvez déposer les noms de type entre <...>. Ils devraient être déduits à moins que je manque quelque chose. –

+0

Vous avez raison, vous pouvez laisser les types off. C'est juste ma préférence de le laisser pour que ce que je cartographie soit clair. J'aime le lire comme "A beaucoup de X à Y" ou "Références X à Z". –

Questions connexes