vb.net проблема лямбда-выражения

У меня странная проблема в Visual Studio 2010, Visual Basic и использовании Linq. Мои ламда-выражения не проявляются в интеллекте. Проект, над которым я работаю, был создан в visual studio 2008, и я превратил его в проект visual studio 2010.

Вот выражение, которое я пытаюсь запустить:

ClockItemsColl.Filter = ClockItemsColl.AsQueryable().OrderBy(d >= d.Second)

Однако ошибка, которую я получаю:

"d" не доступен в этом контексте, потому что это "Друг".

Я также пытался

ClockItemsColl.Filter = ClockItemsColl.AsQueryable().OrderBy(Function(d As ClockItems) d >= d.Second)

Но все равно выдает ошибку, и я не могу сделать из этого ни головы, ни хвоста.

Не удалось разрешить перегрузку, так как доступный 'OrderBy' не может быть вызван с этими аргументами: Метод расширения 'Открытая функция OrderBy(Of TKey)(keySelector As System.Func(Of BusinessObjects.ClockItems, TKey)) как System.Linq.IOrderedEnumerable(Of BusinessObjects).ClockItems)', определенный в'System.Linq.Enumerable': оператор'>='не определен для типов'BusinessObjects.ClockItems'и'Integer?'. Метод расширения 'Public Function OrderBy(Of TKey)(keySelector As System.Func(Of BusinessObjects.ClockItems, TKey)) As System.Linq.IOrderedEnumerable(Of BusinessObjects.ClockItems) ", определенный в'System.Linq.Enumerable': тип данных (s) параметра (ов) типа не могут быть выведены из этих аргументов. Явное указание типов данных может исправить эту ошибку. Метод расширения 'Открытая функция OrderBy(Of TKey)(keySelector As System.Linq.Expressions.Expression(Of System.Func(Of BusinessObjects.ClockItems, TKey))) Как System.Linq.IOrderedQueryable(Of BusinessObjects.ClockItems) ", определенный в "System.Linq.Queryable": оператор "> =" не определен для типов "BusinessObjects.ClockItems" и "Integer?". Метод расширения 'Открытая функция OrderBy(Of TKey)(keySelector As System.Linq.Expressions.Expression(Of System.Func(Of BusinessObjects.ClockItems, TKey))) Как System.Linq.IOrderedQueryable(Of BusinessObjects.ClockItems) ", определенный в 'System.Linq.Queryable': Тип (ы) данных параметра (ов) типа не может быть выведен из этих аргументов. Явное указание типов данных может исправить эту ошибку.

Я использую пространства сущностей для взаимодействия со своим слоем данных, и это первый раз, когда я использую Linq, поэтому я испытываю некоторые проблемы роста.

Спасибо за ваше время.

1 ответ

Решение

Я считаю, что вы хотите, это ближе к этому:

ClockItemsColl.Filter = ClockItemsColl.AsQueryable().OrderBy(Function(d) d.Second)

Этот сайт отлично подходит для изучения синтаксиса VB linq.

Дайте мне знать, если что-нибудь еще появится.

Другие вопросы по тегам