繁体   English   中英

LINQ 获取结果中的列,查询的分组依据

[英]LINQ get columns in result by which query was grouped by

我在 LINQ 中获取分组列时遇到问题。

我的课:

public class DTO_CAORAS
{    
    public int? iORAS_KEY_CON { get; set; }
    public int? iMERC_KEY {get;set;}
    public double? decD_ORAS_QUA {get;set;}        
}

LINQ 查询:

var results =
    from oras in listCAORAS_Delivered
    group oras by new
    {
      oras.iORAS_KEY_CON,
      oras.iMERC_KEY
    }
    into orasGroup
    select new
    {
      decD_ORAS_QUA = orasGroup.Sum(x => x.decD_ORAS_QUA)
    };

列表results仅填充一列 - decD_ORAS_QUA 我不知道如何获取列,按哪个查询分组 - IORAS_KEY_CONiMERC_KEY 我想用 iORAS_KEY_CON、iMERC_KEY 和 decD_ORAS_QUA 填充results

输入数据:

+---------------+-----------+---------------+
| iORAC_KEY_CON | iMERC_Key | decD_ORAS_QUA |
+---------------+-----------+---------------+
|            1  |      888  |             1 |
|            1  |      888  |             2 |
|            1  |      888  |             4 |
+---------------+-----------+---------------+

期望的输出:

+---------------+-----------+---------------+
| iORAC_KEY_CON | iMERC_Key | decD_ORAS_QUA |
+---------------+-----------+---------------+
|            1  |      888  |             7 |
+---------------+-----------+---------------+

还要显示密钥:

var results = from oras in listCAORAS_Delivered
              group oras by new { oras.iORAS_KEY_CON, oras.iMERC_KEY } into g
              select new DTO_CAORAS {
                  iORAS_KEY_CON = g.Key.iORAS_KEY_CON,
                  iMERC_KEY = g.Key.iMERC_KEY,
                  decD_ORAS_QUA = g.Sum(x => x.decD_ORAS_QUA)
              };

由于您只对一列进行分组,因此您还可以:

var results = from oras in listCAORAS_Delivered
              group oras.decD_ORAS_QUA by new { oras.iORAS_KEY_CON, oras.iMERC_KEY } into g
              select new DTO_CAORAS {
                  iORAS_KEY_CON = g.Key.iORAS_KEY_CON,
                  iMERC_KEY = g.Key.iMERC_KEY,
                  decD_ORAS_QUA = g.Sum()
              };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM