2016-12-09 7 views
0

nullまたは過渡値を参照する私はNHibernateはを使用していますし、それが例外をスローし、データベースに保存しようとするので、私は、問題を抱えている:-nullでないプロパティが

-nullでないプロパティがnullを参照しますまたは一時的な値NHibernate.Entities.Question.Test

どうすれば変更できますか?

public class TestMap: ClassMap<Test> 
{ 
    public TestMap() 
    { 
     Table("Test"); 

     Id(x => x.Id) 
      .GeneratedBy.Identity() 
      .Column("Id"); 

     Map(x => x.Name) 
      .Column("Name") 
      .Not.Nullable(); 

     HasMany(x => x.Question).KeyColumn("TestId") 
     .Cascade.All() 
     .Not.LazyLoad(); 
    } 
} 

public class QuestionMap: ClassMap<Question> 
{ 
    public QuestionMap() 
    { 
     Table("Question"); 

     References(x => x.Test) 
      .Column("TestId") 
      .Not.Nullable() 
      .Cascade.SaveUpdate() 
      .Not.LazyLoad(); 

     Id(x => x.Id) 
      .GeneratedBy.Identity() 
      .Column("Id"); 

     Map(x => x.QuestionContent) 
      .Column("QuestionContent") 
      .Not.Nullable(); 

     HasMany(x => x.Answer) 
      .KeyColumn("QuestionId") 
      .Cascade.All() 
     //.Cascade.SaveUpdate() 
     .Not.LazyLoad(); 
    } 
} 

EDIT:クラス

public class Question: Entity 
{ 
    public Question() 
    { 
     Answer = new List<Answer>(); 
    } 
    public virtual string QuestionContent { get; set; } 
    public virtual IList<Answer> Answer { get; set; } 
    public virtual Test Test { get; set; } 

    public virtual void AddAnswer(Answer answer) 
    { 
     answer.Question = this; 
     Answer.Add(answer); 
    } 
} 

public class Test : Entity 
{ 
    public Test() 
    { 
     Question = new List<Question>(); 
    } 

    public virtual string Name { get; set; } 
    public virtual IList<Question> Question { get; set; } 

    public virtual void AddQuestion(List<Question> questions) 
    { 
     foreach (var question in questions) 
     { 
      question.Test = this; 
      Question.Add(question); 
     } 
    } 
} 

質問は回答があり、回答はGivenAnswerあり、GivenAnswerはSolvedTestを持っています。何が間違っているのか分かりません。

+0

質問にクラスを追加できますか? –

+0

'Question'と' Test'オブジェクトは、それらを保存する前に互いに正しい参照を持っていることを確認しましたか? –

+0

@DavidOsborneあなたはどういう意味ですか?私はそれを貼り付けます EDIT:PASTED – Karolina

答えて

-1

としてマップされているので、questionEntityTestプロパティが設定されていることを確認してください。

関連する問題