LINQ with Entity Framework,得到计算总和

Nie*_*nch 2 c# linq linq-to-entities entity-framework sum

我有以下数据:

在此输入图像描述

数字可以为NULL

我正在编写LINQ语句以获得以下数字:

  • 因子110的100是110
  • 因子90的200是180

需要的结果:290

我的LINQ语句目前看起来像这样:

(from b in data
where b.Number.HasValue
select new
{
    Number = b.Number.Value,
    b.Factor
}).Sum(o => o.Number * (o.Factor / 100));
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

转换为值类型'Decimal'失败,因为具体化值为null.结果类型的泛型参数或查询必须使用可空类型.

Nie*_*nch 5

这可以通过像这样强制转换Sum的内容来修复:

(from b in data
where b.Number.HasValue
select new
{
    Number = b.Number.Value,
    b.Factor
}).Sum(o => (decimal?)(o.Number * ((decimal)o.Factor / 100))) ?? 0;
Run Code Online (Sandbox Code Playgroud)

(注意:我在写这个问题的过程中找到了答案,并认为我可能会制定一个答案并将其发布给其他人找到)