Получить запрашиваемые элементы, которых нет в другом списке, используя лямбда-выражения

1

У меня есть IQueryable (Of T) и список зависимых элементов List (of T). Я пытаюсь достичь IQueryable (Of T), который исключает все элементы в списке (T).

 Dim returnQuery As IQueryable(Of POCO.ClassName) = GetTheQuery(...)
 Dim excludeLists As List(Of POCO.ClassName) = GetExcludedList(...)

 returnQuery = returnQuery.Except(excludeLists)

Ошибка возникает при попытке выполнить результат для IQueryable.

Не удалось создать постоянное значение типа "POCO.ClassName". В этом контексте поддерживаются только примитивные типы или типы перечислений.

Кажется, что в этом случае это не сработает. Итак, как я могу исключить элементы списка, используя лямбда-выражения.

  • 0
    Это интересно. Я думаю, вам лучше не использовать лямбду, а просто использовать Linq. Есть ли конкретная причина, по которой вам нужно реализовать лямбду?
  • 0
    @Airborne В воздухе нет особых причин. Я знаю, как это может сделать Линк, но мне интересно, есть ли способ достичь Лямбды или нет ..
Теги:
linq
lambda
iqueryable

1 ответ

3
Лучший ответ

Ну, типичный пример: http://msdn.microsoft.com/en-us/library/vstudio/bb300779(v=vs.100).aspx использует дубликаты, и в сочетании с полученной вами ошибкой ясно, Except работает на таких примитивах, как парные.

Поэтому вам придется использовать Linq, и в этом нет ничего плохого.

returnQuery = returnQuery.Where(item => !excludeLists.Contains(item))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню