Нужна помощь с запросом LINQ с использованием динамической библиотеки LINQ - PullRequest
2 голосов
/ 01 апреля 2011

Прости мое невежество по этому поводу.У меня есть этот LINQ Query: 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).Вот определение bikersList:

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()

Но теперь я получаю синюю строку с метками:ошибка «Не удалось разрешить перегрузку, потому что ни один из доступных« Select »не принимает это количество аргументов».За "NEW" я получаю сообщение об ошибке ")".

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

1 Ответ

1 голос
/ 01 апреля 2011

Вы смешиваете синтаксис «метода расширения» с «синтаксисом запроса».

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()
...