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?