Нужна помощь с запросом 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()
Другие вопросы по тегам