0

コード:

IQueryable<Task> taskRecord = parentId != Guid.Empty ? _taskReadService.GetRecords()
                             .Where(x => x.TaskId == taskId).OrderBy(x => x.Date)

上記のコードを使用して日付を並べ替えたところ、正常に機能していました。date がソートされた後、さらに2 つの条件を追加する必要があります。つまり、 statusnameです。

4

3 に答える 3

0

Caramirielが使用を提案したようThenBy

IQueryable<Task> taskRecord = parentId != Guid.Empty ? _taskReadService.GetRecords()
                             .Where(x => x.TaskId == taskId)
                             .OrderBy(x => x.Date)
                             .ThenBy(x => x.Status)
                             .ThenBy(x => x.Name) : null;
于 2013-07-03T11:35:39.400 に答える
0

読みやすくするために、コードを少しフォーマットし直します....

IQueryable<Task> taskRecord = null;
if(parentId != Guid.Empty)
{
     taskRecord = _taskReadService.GetRecords()
                                  .Where(x => x.TaskId == taskId)
                                  .OrderBy(x => x.Date)
                                  .ThenBy(x => x.Status)
                                  .ThenBy(x => x.Name);
}
于 2013-07-03T11:35:51.677 に答える
0

必要なのはThenBy. 1 秒追加するとOrderBy、並べ替え順序がリセットされます (実際には並べ替えが実行され、その後もう一度並べ替えが行われます)。例を外挿することにより:

IQueryable<Task> taskRecord =
    parentId != Guid.Empty
    ? _taskReadService.GetRecords()
        .Where(x => x.TaskId == taskId)
        .OrderBy(x => x.Date)
        .ThenBy(x => x.Status)
        .ThenBy(x => x.Name)
    : ... ;
于 2013-07-03T11:35:59.693 に答える