В сетке мне нужно перейти к записи по ее идентификатору.Вот почему мне нужно найти его индекс в фильтрованном и отсортированном пользователем наборе.
Я работаю с LINQ to Entities .Запрос строится динамически, на основе пользовательского ввода.
Таблица содержит слишком много (более 10 ^ 5) записей, поэтому следующие предложения по переполнению стека могут быть полезны:
Recs = Recs.Where( /* Filters */ );
Recs = Recs.OrderBy( /* Sort criteria */ );
Recs.AsEnumerable()
.Select((x,index) => new {RowNumber = index, Record = x})
.Where(x=>x.Record.ID = 35);
Поскольку LINQ to Entities не поддерживает Select((entity, index) => ...)
, потребуется загрузить 250 000 записей с сервера SQL, чтобы я мог принять решение показать страницу 25 000.
В настоящее время мой самый многообещающийИдея состоит в том, чтобы преобразовать каждый критерий сортировки в фильтр.Таким образом, поиск индекса человека, отсортированного по возрастанию, станет подсчетом более коротких людей (критерий сортировки «высота по возрастанию» => фильтр »высота меньше, чем« + счет »).
Как мне подойти к этому?Эта проблема уже решена?Есть ли какая-нибудь библиотека для .NET , которая позволила бы мне пройти даже половину пути?