【问题标题】:LINQ with Entity Framework, getting calculated sumLINQ with Entity Framework,得到计算的总和
【发布时间】:2013-08-29 17:03:55
【问题描述】:

我有以下数据:

数字可以为NULL

我正在编写一个 LINQ 语句以获得以下数字作为结果:

  • 110 的 100 是 110
  • 200 系数 90 是 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));

我收到以下错误:

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

【问题讨论】:

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


    【解决方案1】:

    这可以通过像这样转换 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;
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-01
      • 2021-04-08
      相关资源
      最近更新 更多