IQueryable<Task> taskRecord = parentId != Guid.Empty ? _taskReadService.GetRecords()
.Where(x => x.TaskId == taskId).OrderBy(x => x.Date)
我排序利用上面的代碼日期,它是工作罰款。我需要在日期排序之後添加另一個兩個條件,即的狀態爲和的名稱爲。
IQueryable<Task> taskRecord = parentId != Guid.Empty ? _taskReadService.GetRecords()
.Where(x => x.TaskId == taskId).OrderBy(x => x.Date)
我排序利用上面的代碼日期,它是工作罰款。我需要在日期排序之後添加另一個兩個條件,即的狀態爲和的名稱爲。
由於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;
我稍微再格式的代碼可讀性....
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);
}
我想你需要的是ThenBy
。添加第二個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)
: ... ;
您是否使用'ThenBy'而不是'OrderBy'來處理除第一個之外的其他項目? – Caramiriel
不,我沒有使用'ThenBy'。如果可能的話,更改上面的代碼併發布爲答案。 –