Я пытаюсь взять окончательное решение от Фила Хаака здесь и отсортировать его, используя его убийственный запрос LINQ, но вместо использования контекста данных, как он, я хочу выполнить запрос к IEnumerable (Of T). .. не везет.
Public Function DynamicGridData(ByVal sidx As String, ByVal sord As String, ByVal page As Integer, ByVal rows As Integer) As ActionResult
Dim list As List(Of User) = UserService.GetUserCollection()
Dim FilteredAndSortedList = list.OrderBy(sidx + " " + sord).Skip(pageIndex * pageSize).Take(pageSize)
Return JSON(jsonData)
End Function
В настоящее время я получаю сообщение об ошибке ниже моей строки .OrderBy (sidx + "" + sord)
"Тип (ы) данных параметра (ов) типа в методе расширения 'Открытая функция OrderBy (Of TKey) (keySelector As System.Func (Of User, TKey)) Как System.Linq.IOrderedEnumerable (Of User) 'определенный в' System.Linq.Enumerable 'не может быть выведен из этих аргументов. Если явно указать тип данных, это может исправить эту ошибку. "
РЕДАКТИРОВАТЬ:
Я обнаружил, что проблема в том, что мой «список» в приведенном выше примере не относится к типу IQueryable. Просто добавив .AsQueryable () добился цели!
Public Function DynamicGridData(ByVal sidx As String, ByVal sord As String, ByVal page As Integer, ByVal rows As Integer) As ActionResult
Dim list As List(Of User) = UserService.GetUserCollection()
Dim FilteredAndSortedList = list.AsQueryable().OrderBy(sidx + " " + sord).Skip(pageIndex * pageSize).Take(pageSize)
Return JSON(jsonData)
End Function