NHibernate를 사용하고 있는데 데이터베이스에 저장하려고 할 때 예외가 발생하기 때문에 문제가 있습니다.
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가 있습니다. 나는 무엇이 잘못 될 수 있는지 전혀 모른다.
로 매핑 된대로 questionEntity
해당 Test
속성이 설정되어 있는지 확인합니다 Not.Nullable()
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다