2016-12-09 2 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(); 
    } 
} 

편집 : 클래스

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

Test 속성이 Not.Nullable()으로 매핑되어 있으므로이 속성이 설정되어 있는지 확인하십시오.