Нужна помощь с запросом 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()

Как видите, это СПИСОК (OF). Вот определение списка байкеров:

Dim bikersList As List(Of Bikers) = TryCast(HttpContext.Current.Session("Bikers"), List(Of Bikers))

Мне нужно уметь сортировать, поэтому я собирался использовать динамическую библиотеку LINQ. Поэтому я добавил его в свой проект 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

с ошибкой «Разрешение перегрузки не удалось, поскольку ни один доступный «Выбор» не принимает это количество аргументов». Над «НОВЫМ» я получаю сообщение об ошибке «ожидаемое».

Кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно. Спасибо


person Matt Porterfield    schedule 31.03.2011    source источник


Ответы (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()

Or

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()
person jeroenh    schedule 31.03.2011