none
Erro: Unable to create a constant value of type 'System.Object' RRS feed

  • Pergunta

  • Esse erro acontece em minha linq:

    Unable to create a constant value of type 'System.Object'. Only primitive types or enumeration types are supported in this context.

    Acontece, quando eu crio um campo dentro da linq e passo valores. Abaixo a minha linq. Os campos comentado é onde acontece o erro. Comentando, funciona normalmente. Procurei na net, não achei nada que desse uma resposta adequada.

    resultado = (from web in db.T_teste
    
                                     where web.CNPJ.StartsWith(cnpjRazao) ||
                                           web.RazaoSocial.StartsWith(cnpjRazao)
    
                                     join testab in db.T_TipoEstabelecimento on web.IDTipoEstabelecimento equals (testab.IDTipoEstabelecimento)
                                     join trede in db.T_TipoRede on web.IDTipoRede equals (trede.IDTipoRede)
                                     join tusupdv in db.T_UsuarioPDV on web.IDPdv equals (tusupdv.IDPDV)
                                     join tusu in db.T_Usuario on tusupdv.IDUsuario equals (tusu.IDUsuario)
    
                                     select new
                                     {
                                        web.CNPJ
                                     ,  web.RazaoSocial
                                     ,  web.NomeFantasia
                                     ,  web.Endereco
                                     ,  web.Bairro
                                     ,  web.CEP
                                     ,  web.Complemento
                                     ,  web.Numero
                                     ,  web.QtdeCheckOuts
                                     ,  web.Telefone
                                     ,  web.NomeRede
                                     ,  web.Email
                                     ,  web.Celular
                                     ,  situacao = web.IS_Ativo.Equals(0) ? "Inativo" : "Ativo"
                                     ,  trede.Nome
                                     //,  contato = tusu.Nome
                                     //,  cel_contato = tusu.Celular
                                     //,  fone_contato = tusu.Telefone
                                     //,  email_contato = tusu.Email
                                     //,  tipo_estabelecimento = testab.Nome
    
                                     }).ToList();
                }
    


    • Editado pnet quinta-feira, 8 de maio de 2014 19:44
    quinta-feira, 8 de maio de 2014 19:43

Todas as Respostas

  • Tentei fazer com Lambda, mas me deparo com a seguinte situação. Lambda parece que não reclama em ter nomes de campos iguais, mas não consigo ir fazendo join, com a primeira tabela, ou seja, fiz o primeiro Jpoin com a tabela T_PDV e T_TipoEstabelecimento, deplois puxei outra cláusla Join, mas com a tabela T_TipoRede, mas essa deveria fazer Join com a T_Pdv, mas esse Join só é aceito se for com a tabela anterior, que no caso é a T_Estabelimento. Veja a tentativa de fazer o lambda:

    resultado = db.T_PDV.Select(web => new {
                        web.CNPJ
                        ,  web.RazaoSocial
                        ,  web.NomeFantasia
                        ,  web.Endereco
                        ,  web.Bairro
                        ,  web.Cidade
                        ,  web.Estado
                        ,  web.CEP
                        ,  web.Complemento
                        ,  web.Numero
                        ,  web.QtdeCheckOuts
                        ,  web.Telefone
                        ,  web.NomeRede
                        ,  web.Email
                        ,  web.Celular
                        ,  web.IDTipoEstabelecimento
                        ,  web.IDTipoRede
                    })
                    .Join(db.T_TipoEstabelecimento, web => web.IDTipoEstabelecimento,est => est.IDTipoEstabelecimento,
                    (web,est) => new {est.Nome})
                    .Join(db.T_TipoRede, web => web.)
    
    sexta-feira, 9 de maio de 2014 15:13