LINQ with Entity Framework,得到计算总和

时间:2012-08-27 13:11:54

标签: c# linq entity-framework linq-to-entities sum

我有以下数据:

enter image description here

Number可以为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));

我收到以下错误:

  

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

1 个答案:

答案 0 :(得分: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;

(注意:我在写这个问题时找到了答案,并认为我不妨制定答案并将其发布给其他人查找)