LINQ中孩子的孩子总数

奥马尔马拉特

我在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

Shazi

一些常规的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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章