Как использовать построитель предикатов с linq2sql и оператором OR

У меня есть две таблицы (TABLE1, TABLE2 - уникальные, я знаю), которые имеют отношение 1-ко-многим соответственно и внешний ключ между столбцами идентификаторов обеих таблиц.

С помощьюLinq2Sql Я пытаюсь выбрать всеТАБЛИЦА 1 записи такие, что их соответствующиеТАБЛИЦА 2 Значения содержат как минимум 1 элемент в списке, который я передаю.

Вот пример кода, который я использовал вLINQPad (классная программа), чтобы проверить это, однако получаю ошибкуNotSupportedException: неподдерживаемая перегрузка, используемая для оператора запроса 'Any'.

long[] items = { 3, 5, 8 };
var predicate = PredicateBuilder.False<TABLE2>();

foreach (long i in items)
{
    long t = i;
    predicate = predicate.Or(att => att.ID == t);
}

//TABLE2.Where(predicate).Dump(); //works like a charm

IQueryable query = 
    from t1 in TABLE1
    where t1.TABLE2.AsQueryable().Any(predicate) //problem with this line
    select a;

query.Dump();

ОБНОВИТЬ

При использовании LinqKit в LinqPad добавьте ссылку на LinqKit.dll, снимите флажок Включить PredicateBuilder, а затем также добавьте LinqKit на вкладке «Импорт дополнительных пространств имен».

Ответы на вопрос(1)

Ваш ответ на вопрос