У меня есть 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". В этом контексте поддерживаются только примитивные типы или типы перечислений.
Кажется, что в этом случае это не сработает. Итак, как я могу исключить элементы списка, используя лямбда-выражения.
Ну, типичный пример: http://msdn.microsoft.com/en-us/library/vstudio/bb300779(v=vs.100).aspx использует дубликаты, и в сочетании с полученной вами ошибкой ясно, Except
работает на таких примитивах, как парные.
Поэтому вам придется использовать Linq, и в этом нет ничего плохого.
returnQuery = returnQuery.Where(item => !excludeLists.Contains(item))