Array
(
)

Contains no linq

Eric Miranda
   - 19 mai 2015

Boa tarde Pessoal.
Estou tendo dificuldades em fazer um not in no linq.
tenho o seguinte código já fucionando
#Código

List<PRODUTO_BIONEXO> lista;

using (Bionexo context = new Bionexo())
{
    if (verificarRespondidos)
    {
        lista = (from pi in context.WG_PEDIDO_ITEM
                 join p in context.WG_PEDIDO on pi.ID_PDC equals p.ID_PDC
                 where (pi.STATUS.Equals("R") || pi.STATUS.Equals("C") ||
                        pi.STATUS.Equals("F") || pi.STATUS.Equals("P"))
                 select new PRODUTO_BIONEXO
                 {
                     CODIGO_PRODUTO = pi.CODIGO_PRODUTO,
                     DESCRICAO_PRODUTO = pi.DESCRICAO_PRODUTO
                 }
                 ).Distinct().OrderBy(i => i.DESCRICAO_PRODUTO).ToList<PRODUTO_BIONEXO>();
    }
}

preciso nele acrescentar uma condição que o pi.CODIGO_PRODUTO não esteja em uma tabela de vinculos, ou seja, só me mostre os que não foram vinculados.
O que estou tentando sem sucesso é isso
#Código
List<PRODUTO_BIONEXO> lista;

using (Bionexo context = new Bionexo())
{
    if (verificarRespondidos)
    {
        lista = (from pi in context.WG_PEDIDO_ITEM
                 join p in context.WG_PEDIDO on pi.ID_PDC equals p.ID_PDC
                 where (pi.STATUS.Equals("R") || pi.STATUS.Equals("C") ||
                        pi.STATUS.Equals("F") || pi.STATUS.Equals("P"))
                 && !pi.CODIGO_PRODUTO.Contains(from v in context.VINCULO_PRODUTO select v.CODIGO_PRODUTO.Distinct())						
                 select new PRODUTO_BIONEXO
                 {
                     CODIGO_PRODUTO = pi.CODIGO_PRODUTO,
                     DESCRICAO_PRODUTO = pi.DESCRICAO_PRODUTO
                 }
                 ).Distinct().OrderBy(i => i.DESCRICAO_PRODUTO).ToList<PRODUTO_BIONEXO>();
    }
}

o erro está nesta linha
#Código
&& !pi.CODIGO_PRODUTO.Contains(from v in context.VINCULO_PRODUTO select v.CODIGO_PRODUTO.Distinct())

Podem me ajudar por favor?