代码之家  ›  专栏  ›  技术社区  ›  Neil Trodden

如何在linq查询中对不同的列进行分组?

  •  1
  • Neil Trodden  · 技术社区  · 14 年前

    通过将两个sql表连接在一起创建以下数据:

    My data

    最终的结果是我可以遍历‘组记录’——一共有5个。在每个“组记录”中,我可以遍历“子组记录”。这5组将分别包含3、2、5、2和1个亚组记录。

    创建查询的语法是什么?理想情况下,这将采用vb.net linq语法。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Jeff Mercado    14 年前

    只需使用由这些属性组成的匿名密钥进行分组。下面是C查询的语法:

    var query = from row in joinedTable
                group new // subgroup record
                    {
                        row.ColumnName,
                        row.PreviousValue,
                        row.NewValue
                    }
                by new    // group record
                    {
                        row.DateStamp,
                        row.UserName,
                        row.StudentName,
                        row.InstructorName,
                        row.TableName,
                        row.PrimaryKey
                    };
    

    Dim query = From row In joinedTable    _
                Group                      _
                    row.ColumnName,        _
                    row.PreviousValue,     _
                    row.NewValue           _
                By                         _
                    row.DateStamp,         _
                    row.UserName,          _
                    row.StudentName,       _
                    row.InstructorName,    _
                    row.TableName,         _
                    row.PrimaryKey         _
                Into SubGroup = Group