Как я могу сгруппировать отдельные столбцы в запросе linq? - PullRequest
1 голос
/ 04 ноября 2010

Следующие данные создаются путем объединения двух таблиц sql:

My data

Я хотел бы сгруппировать отдельные строки DateStamp / UserName / StudentName / InstructorName / TableName / PrimaryKey(Я назову это «групповыми записями»), а затем сгруппирую их под этими ColumnName / PreviousValue / NewValue (я назову это «записями подгруппы»)

Конечным результатом будет то, что я мог бы пройти черезгрупповые записи »- их было бы пять. В каждой« групповой записи »я мог бы затем перебирать« записи подгруппы ».Эти 5 групп будут содержать 3, 2, 5, 2 и 1 записи подгруппы соответственно.

Какой будет синтаксис для создания запроса для этого?В идеале это должно быть в синтаксисе vb.net linq.

1 Ответ

1 голос
/ 04 ноября 2010

Просто сгруппируйте, используя анонимный ключ, состоящий из этих свойств.Вот синтаксис для запроса 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
                };

Соответствующий запрос VB:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...