我在EF6中的LINQ查询中需要帮助。
主表称为EXAM
。它的孩子是ExamResult
。每个ExamResult
都有一个Question
和选择的Answer
。每个Answer
都有power
(如果错误则为0,如果正确则为1)。如果我想知道正确答案的总数,只需运行以下命令:
var examTotal = db.Exams.FirstOrDefault(ex => ex.ExamID == examId).ExamResults.Sum(er => er.Answer.Power);
我的问题是,当某些问题没有得到回答时,我明白了NullReferenceException
。
一些常规的nullcheck应该可以解决问题
var exam = db.Exams.FirstOrDefault(ex => ex.ExamID == examId);
var examTotal = exam.ExamResults.Sum(er => er.Answer?.Power ?? 0);
...以防万一您不使用C#6,这是它的另一个版本:
var exam = db.Exams.FirstOrDefault(ex => ex.ExamID == examId);
var examTotal = exam.ExamResults.Sum(er => er.Answer != null ? er.Answer.Power : 0);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句