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있다. 나는 무엇이 잘못 될 수 있는지 전혀 모른다.
수업에 수업을 추가 할 수 있습니까? –
'Question'과'Test' 객체가 저장하기 전에 서로 올바른 참조를 가지고 있는지 확인 했습니까? –
@DavidOsborne 무슨 뜻인가요? 나는 그것을 붙여 넣을 것이다 EDIT : PASTED – Karolina