本当にこれを回避しようとしていますが、木々の間から光が見えません。おそらく明らかな何かを見逃しています!
データベース内でオブジェクトを作成すると、どの問題でも機能しますが、値をリストしようとすると、リンクがnullです...
と の 2 つのオブジェクトがありQuestion
ますResponse
。質問には多くの回答が含まれる可能性があるため、モデルは次のとおりです。
public class Question
{
public int Id { get; set; }
public int QuestionNumber { get; set; }
public string QuestionText { get; set; }
public IList<Response> Responses { get; set; }
public Question()
{
Responses = new List<Response>();
}
}
public class Response
{
public int Id { get; private set; }
public Question Question { get; set; }
public int ResponseValue { get; set; }
public string ResponseText { get; set; }
}
そして、ここにマッピングがあります:
public class QuestionMap : ClassMap<Question>
{
public QuestionMap()
{
Id(q => q.Id);
Map(q => q.QuestionNumber);
Map(q => q.QuestionText).Length(300).Not.Nullable();
HasMany<Response>(q => q.Responses).Inverse().AsBag();
}
}
public class ResponseMap : ClassMap<Response>
{
public ResponseMap()
{
Id(x => x.Id);
References<Question>(x => x.Question).Not.Nullable();
Map(x => x.ResponseText);
Map(x => x.ResponseValue);
}
}
だから私が使うとき
var responses = _session.CreateCriteria(typeof(Response)).List<Response>();
Question オブジェクトをデバッグして確認すると、常に null です。