我使用LINQ查询发现一列的总和,并有轻微的机会,该值可能在少数情况下处理空
为空我现在使用的查询是
int score = dbContext.domainmaps.Where(p => p.SchoolId == schoolid).Sum(v => v.domainstatement.Score ?? 0);
其中domainstatement
可以为空,也得分可以为空
现在执行这个查询后,我收到错误
由于物化值为空,所以强制转换为值Int32类型失败。结果类型的泛型参数或查询都必须使用可为空的类型。
那么我怎样才能有效地处理空例外,并返回作为INT值的总和?
INT得分= dbContext.domainmaps.Where(P => p.SchoolId == schoolid).SUM(V => (ⅴ.domainstatement .Score?).GetValueOrDefault()); 这是否工作?因为整数的默认值是0,所以这个总和应该没有问题,但我不知道我的语法是否正确。 – thinklarge
是否有'domainstatement' id? –
你真的使用LINQ-2-SQL而不是EF吗? –