2009-03-30 6 views
0

私は、SurveyとPollの2つのクラスを持っています。また、質問と質問の選択科目もあります。これらをどのようにマップすると、特定のテーブル形式が出てきますか。ここには関連するクラスがあります。私が撮影してる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; } 
} 

結果の表には、私は本当に流暢NHibernateのために知りたい、または単にXMLをマッピングすることは、あまりにも結構です、好ましくは以下の

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. 

含まれています。

答えて

0

テーブル間のリレーションシップを定義していないので、私は一対多を想定しています。

一般的なマッピングは次のようになります。

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

スチュアート、私はあなたが<...>間の型名をドロップすることができると思います。彼らは私が何かを逃していない限り推論されるべきです。 –

+0

あなたはそうです、タイプを離れることができます。それは私がマッピングしているものが明らかになるように残しておくことが私の好みです。私は「多くのXからYまで」または「参照XからZまで」と読むのが好きです。 –

関連する問題