Como usar o construtor de predicado com o operador linq2sql e OR

Eu tenho duas tabelas (TABLE1, TABLE2 - eu sei único) que tem um relacionamento de 1 para muitos, respectivamente, e uma chave estrangeira entre as colunas de identificação de ambas as tabelas.

Usandolinq2sql Estou tentando selecionar tudoTABELA 1 entradas de modo que seus correspondentesTABELA 2 valores contém pelo menos 1 item na lista que eu o transmito.

Aqui está um código de exemplo que eu estava usandoLINQPad (programa incrível) para testá-lo, no entanto, estou recebendo o erroNotSupportedException: sobrecarga não suportada usada para o operador de consulta 'Qualquer'.

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

ATUALIZAR

Ao usar o LinqKit no LinqPad, adicione a referência ao LinqKit.dll, desmarque a opção Incluir PredicateBuilder e adicione o LinqKit na guia Importações de espaço para nome adicional.

questionAnswers(1)

yourAnswerToTheQuestion