2
respostas

Testando o conhecimento

Amigo veja se você consegue me ajudar estou tentando fazer exatamente a mesma coisa que você explicou no vide-o só que esta me dando um erro a única diferença é que estou passando uma classe anonima

var query = (from v in db.IN_VOIP join co in db.CAD_COLABORADOR on v.ramal equals co.ramal into Cgroup from co in Cgroup.DefaultIfEmpty() join e in db.CAD_EMP on v.emp equals e.id select new { VRamal = v.ramal, Vpassword = v.passwd, Vip = v.ip, COuserName = co.username, CoDept = co.CAD_DEPT.descs, CoEmpresa = e.descs, Vsituacao = v.situacao }).ToList() .Select(x => new VoipColaboradorViewModel { ramal = x.VRamal, passwd = x.Vpassword, ip = x.Vip, username = x.COuserName, departamento = x.CoDept, empresa = x.CoEmpresa, situacao = x.Vsituacao });

        if (!string.IsNullOrEmpty(Username))
        {
            query = query.Where(x => x.username.Contains(Username));
        }

        return query.ToList()

a query quebra dentro do if me dando essa mensagem

System.NullReferenceException: 'Referência de objeto não definida para uma instância de um objeto.'

2 respostas

Oi Yrvin, tudo bem?

Nesse caso, você precisa verificar se x.username não é nulo antes de acessar o método Contains() :

        if (!string.IsNullOrEmpty(Username))
        {
            query = query.Where(x => x.username != null && x.username.Contains(Username));
        }

        return query.ToList()

Bom dia funcionou ,obrigado . é uma exigência do Linq fazer essa validação ?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software