19/05/2015

Contains no linq

Boa tarde Pessoal.

Estou tendo dificuldades em fazer um not in no linq.

tenho o seguinte código já fucionando
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

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

&& !pi.CODIGO_PRODUTO.Contains(from v in context.VINCULO_PRODUTO select v.CODIGO_PRODUTO.Distinct())


Podem me ajudar por favor?

Eric Miranda