Нужна помощь с запросом LINQ с использованием динамической библиотеки LINQ
Прости мое невежество по этому поводу. У меня есть этот запрос LINQ: Dim ngBikersDataContext As New CarBikeWalkDataContext
bikersList = (From c In ngBikersDataContext.Reg_Bikers _
Order By c.L_Name _
Select New Bikers() With { _
.BikerID = c.BikerID, _
.F_Name = c.F_Name, _
.M_Name = c.M_Name, _
.L_Name = c.L_Name _
}).ToList()
Как вы можете видеть, это LIST(OF). Вот определение списка байкеров:
Dim bikersList As List(Of Bikers) = TryCast(HttpContext.Current.Session("Bikers"), List(Of Bikers))
Мне нужно было уметь сортировать, поэтому собирался использовать Dynamic LINQ Library. Поэтому я добавил его в свой проект Imported System.Linq.Dynamic и попытался использовать этот код:
bikersList = (ngBikersDataContext.Reg_Bikers _
.OrderBy(SortExpression) _
.Select New Bikers() With { _
.BikerID = c.BikerID, _
.F_Name = c.F_Name, _
.M_Name = c.M_Name, _
.L_Name = c.L_Name _
}).ToList()
Но теперь я получаю синюю потрепанную линию под:
ngBikersDataContext.Reg_Bikers _
.OrderBy(SortExpression) _
.Select
с ошибкой "Не удалось разрешить перегрузку, потому что ни один доступный" Select "не принимает это количество аргументов". За "НОВЫЙ" я получаю ошибку "") "Ожидается".
Кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно. Благодарю вас
1 ответ
Решение
Вы смешиваете синтаксис "метода расширения" с "синтаксисом запроса".
bikersList = (ngBikersDataContext.Reg_Bikers _
.OrderBy(SortExpression) _
.Select(Function(c) New Bikers() With { _
.BikerID = c.BikerID, _
.F_Name = c.F_Name, _
.M_Name = c.M_Name, _
.L_Name = c.L_Name _
})).ToList()
Или же
bikersList = (From c in ngBikersDataContext.Reg_Bikers.OrderBy(SortExpression) _
Select b = New Bikers() With { _
.BikerID = c.BikerID, _
.F_Name = c.F_Name, _
.M_Name = c.M_Name, _
.L_Name = c.L_Name _
}).ToList()