我有問題的表和答案的表LINQ - 連接兩個表和的右側部分獲得的值加入,如果它存在拋出異常
我總是需要,無論顯示的問題清單和有一個corresponsing asnwer,我要抓住這個問題的答案(響應)
我用下面的代碼
var Questions = db.Questions.Where(x => x.isActive);
var Answers = db.Answers.Where(x => x.AssessmentID == 99);
AssessmentResponseVM model = new AssessmentResponseVM();
foreach (var question in Questions)
{
AnswerAndQuestions q = new AnswerAndQuestions { };
q.QuestionText = question.QuestionText;
q.QuestionID = question.ID;
q.Response = Answers.Where(a => a.QuestionID == question.ID).SingleOrDefault().Response; <--- throws exception if there is no answer for the question
model.Questions.Add(q);
}
但得到這個錯誤
Object reference not set to an instance of an object.
在此行中
q.Response = Answers.Where(a => a.QuestionID == question.ID).SingleOrDefault().Response;
你不能得到一個對象的屬性是'null'的價值 - 測試'null'第一,如果沒有,則訪問'Response'財產 –
'VAR答案= Answers.Where( a => a.QuestionID == question.ID).SingleOrDefault(); if(answer!= null){q.Response = answer.Response; } –
@StephenMuecke這就是我決定這樣做的方式 – totalitarian