Все работает, за исключением того, что подпункты (сами треки) не сортируются.
Первое предложение OrderBy() сортирует данные по названию объекта. Это работает должным образом.
Предложение thenBy() выполняет сортировку по имени дорожки. Моя цель состоит в том, чтобы каждый трек на объекте также был отсортирован. Насколько я понимаю, GroupBy() не меняет порядок ввода. Однако эти треки вообще не отображаются отсортированными.
Код: Выделить всё
private async Task GetTrackOptionsAsync()
{
var userContext = await UserContextService.GetUserContextAsync();
var facilities = DbContext.Tracks
.Where(t => t.Facility.CompanyId == userContext.CompanyId)
.OrderBy(t => t.Facility.Name)
.ThenBy(t => t.Name)
.Select(t => new { t.Id, t.Name, t.FacilityId, FacilityName = t.Facility.Name })
.GroupBy(t => new { t.FacilityId, t.FacilityName })
.AsAsyncEnumerable();
List options = [];
await foreach (var facility in facilities)
{
SelectListGroup group = new() { Name = facility.Key.FacilityName };
foreach (var track in facility)
options.Add(new(track.Name, track.Id.ToString()) { Group = group });
}
return options;
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... y-subitems
Мобильная версия